Linux之父帶1.2億程序員如何深度剖析Git底層原理文檔

前言

相信每個開發人員,從開始工做實習就和一個開源項目不離不棄,你的idea,你的文檔,你的代碼指南,幾乎都會和它扯上相應的聯繫,相信有朋友已經猜到了,對,他就是Git,老牌程序員可能會用的是SVN,可是我想後面也已經轉型而來,改成Git了吧git

以前寫過一篇文章,影響世界的開源項目,除了Linux以外,還有一個就是Git,有興趣的你們能夠看一下:讓世界爲之讚歎的開源項目,除了Linux,你知道Git嗎?程序員

那Git爲何這麼牛逼,咱們先簡單的看一下Git的實現方式吧面試

「版本控制系統」Version Control System,VCS)是程序代碼管理軟件的通稱,是用來保存程序文件的修改記錄以及歷史版本,以便往後查看或是使用。VCS已經有數十年的發展歷史,最先期的系統是採用集中管理和控制的方式。若是要修改某一個程序文件,必須先將它鎖定,而後取出修改。在完成修改和回傳以前,其餘人都不能更改這個程序文件。這種方式能夠有效避免「衝突」(conflict)的發生(也就是防止不一樣人同時修改同一段程序代碼所形成混淆的狀況),可是付出的代價是效率下降。由於若是想要修改的文件正好有別人正在修改,就必須等程序文件回傳以後才能動手。若是要修改的人不少,由於互相等待所形成的時間浪費將很是可觀。爲了解決這個問題,新的VCS 改爲採用分佈式的方法。每個人隨時均可以獲取任何一個程序文件來進行修改,等到送回VCS 的時候,再根據須要進行「合併」(merge), Git就是採用這種分佈式技術的系統。網絡

那接下來就是進入整題,也就是Git在咱們平常生活中的使用以及面試中常問的問題架構

我的倉庫地址:https://gitee.com/biwangsheng/personal分佈式

開始前,先來看我整理的相應的思惟導圖吧ide

第一部分Git的基本概念和操做

Git的開發者其實就是Linux的做者,也就是鼎鼎大名的 LinusTorvalds。—開始的時候,Torvalds是使用 BitKeeper 軟件來管理Linux的程序代碼,該軟件原來是無償使用的,可是後來卻要收費。因而Torvalds想要更換VCS,卻苦於尋找不到其餘的替代方案能夠符合開發Linux的需求。由於參與開發 Linux 的人數高達上千人,並且分佈在世界各地。最後Torvalds決定本身打造一個VCS。通過短短几個星期,第—版的 Git就正式誕生。Linux項目今後用Git管理,當時有將近七百萬行的程序代碼!工具

因爲Git管理Linux項目很是成功,許多公司因而紛紛效仿,開始使用 Git來管理和控制軟件研發項目。這些成功的經驗,讓 Git的影響力愈來愈高,使用率也快速提高。學習

因此開始第一篇,很簡單,就是Git的操做指令,不錯,若是你會Linux的話,不少東西對你來講比較簡單的,好多命令能夠通用idea

第二部分創建分支、合併和解決衝突

當能夠正常使用軟件以後,接下來就是對於程序提交的管理工做,畢竟項目開發過程當中摻雜着多人之間的協做問題,就像Linux有近兩萬人提交升級修改,那Git是如何去解決這個問題呢?

第三部分Git程序的圖形操做介面

就像Linux的每個版本都會有DVD和mini兩個版本同樣,在習慣了使用mini的命令版本以後,DVD版本的Linux更容易上手

一樣的,到當前爲止,咱們一直都是使用 Git Bash程序來學習Git的用法。Git Bash程序是以輸入指令的方式操做 Git文檔庫。與圖形操做界面的程序相比,這種命令行模式的程序好像比較麻煩。其實否則,Git Bash程序纔是可以完整發揮Git最大功能的操做工具。初學者應該從 GitBash程序開始學習,才能打下紮實的 Git指令基礎,而且完整了解 Git文檔車的工做原理。等到熟練掌握這些基礎知識以後,再來學習圖形操做模式,天然就能舉一反三、垂手可得。通過前面單元的學習和演練,相信讀者已經具有完整的基礎。這個單元咱們就來介紹 Git GUI這個圖形界面操做程序的用法。

第四部分遠程Git文檔庫和團隊開關模式

截至當前爲止,咱們操做的 Git文檔庫都是存儲在程序項目的文件夾內(也就是「.git」的文件夾內)。隨着程序項目的進展,咱們會把不一樣階段的文件內容加入Git文檔庫。這個Git文檔庫是由咱們直接操控,稱它爲「本地 Git文檔庫(local repository)」。除了「本地 Git文檔庫」之外,若是須要和其餘人共同開發這個程序項目,還須要一個所謂的「遠程Git文檔庫(remote repository)」。這個單元咱們就來介紹「遠程 Git文檔庫」的功能和用法。

重點把這一塊的內容拿出來,由於它這個Git遠程文檔庫跟我把GitHub當成百度網盤使用有殊途同歸之妙,可是個人方案仍是有一點不足,在看完這份文檔以後纔想到改進方案

第五部分架設Git Server

這個單元先介紹兩種訪問遠程 Git文檔庫最簡單的作法。這兩種方法都不須要安裝任何其餘軟件。

第一種是使用Windows操做系統自己的網絡「共享文件夾」功能;

第二種是使用Git內建的 dacmon功能。

附錄Git經常使用指令—覽表

Git總共提供了超過一百個以上的指令讓咱們執行各類操做可使用「git help -a」指令顯示完整的指令列表),每個指令又有許多選項能夠搭配,可是咱們不可能,也不須要徹底記住這些指令。就實用性而言,只要熟練部分指令和選項的用法,就能夠知足—般應用的需求。如下咱們將經常使用的 Git指令,按照字母順序列表說明,以方便讀者查閱。

 關注公衆號:Java架構師聯盟,每日更新技術好文

相關文章
相關標籤/搜索