let's starting git

Git是一款免費、開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。git

Git是一個開源的分佈式版本控制系統,能夠有效、高速的處理從很小到很是大的項目版本管理。 Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。Torvalds 開始着手開發 Git 是爲了做爲一種過渡方案來替代 BitKeeper,後者以前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人以爲BitKeeper 的許可證並不適合開放源碼社區的工做,所以 Torvalds 決定着手研究許可證更爲靈活的版本控制系統。儘管最初 Git 的開發是爲了輔助 Linux 內核開發的過程,可是咱們已經發如今不少其餘自由軟件項目中也使用了 Git。例如 不少 Freedesktop 的項目遷移到了 Git 上。服務器

分佈式相比於集中式的最大區別在於開發者能夠提交到本地,每一個開發者經過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。分佈式

 

Git的功能特性:工具

從通常開發者的角度來看,git有如下功能:學習

一、從服務器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。fetch

二、在本身的機器上根據不一樣的開發目的,建立分支,修改代碼。版本控制

三、在單機上本身建立的分支上提交代碼。htm

四、在單機上合併分支。開發

五、把服務器上最新版的代碼fetch下來,而後跟本身的主分支合併。get

六、生成補丁(patch),把補丁發送給主開發者。

七、看主開發者的反饋,若是主開發者發現兩個通常開發者之間有衝突(他們之間能夠合做解決的衝突),就會要求他們先解決衝突,而後再由其中一我的提交。若是主開發者能夠本身解決,或者沒有衝突,就經過。

八、通常開發者之間解決衝突的方法,開發者之間可使用pull 命令解決衝突,解決完衝突以後再向主開發者提交補丁。

從主開發者的角度(假設主開發者不用開發代碼)看,git有如下功能:

一、查看郵件或者經過其它方式查看通常開發者的提交狀態。

二、打上補丁,解決衝突(能夠本身解決,也能夠要求開發者之間解決之後再從新提交,若是是開源項目,還要決定哪些補丁有用,哪些不用)。

三、向公共服務器提交結果,而後通知全部開發人員。

優勢:

適合分佈式開發,強調個體。

公共服務器壓力和數據量都不會太大。

速度快、靈活。

任意兩個開發者之間能夠很容易的解決衝突。

離線工做。

缺點:

資料少(起碼中文資料不多)。

學習週期相對而言比較長。

不符合常規思惟。

代碼保密性差,一旦開發者把整個庫克隆下來就能夠徹底公開全部代碼和版本信息。

附上網上找的一篇很好的git文章,做者從 物理上對git進行了解釋。看完豁然開朗,很

相關文章
相關標籤/搜索