提到版本控制,最近大家都在談git。當然,四處議論紛紛還不足以證明切換到git上有多麼正确。這裡有一些能證明git非常出色的有力事實。
1. 節省時間
想象一下,每次動滑鼠前你都要等待5分鐘。這非常讨厭是不是?有了版本控制也是一樣——我們每個指令消耗幾秒,但是工作一天也累積起來了。但是git快如閃電。把你的時間用在其他更重要的事情上,而不是等待版本控制工具的響應。

null
2. 離線工作
你出差的時候要工作怎麼辦?用諸如subversion或者cvs的集中式版本控制系統,如果你不能連上中央版本庫你就不能工作。有了git,在你 的本地機器上幾乎能做任何事:送出、檢視項目完整曆史記錄、合并(merge)或者建立分支……git讓你來決定何時何地開始工作。
3. 回退錯誤
有時候我會犯錯(我也不敢相信!)。我喜歡git的是它的一個小小的回退指令就能用于幾乎任何場景。修正最後一次送出,因為你忘記包含一個小改動。撤銷整個 送出,因為那個特性已經不再需要。而且當處境變得困難時,你甚至可以用reflog來恢複“已删除”的送出——因為在幕後git極少會真正删除什麼。這樣 心定氣閑。
4. 睡得香
你曾經粉碎過subversion的版本庫嗎?我就做過(我說這個的時候記憶的傷痛猶在)。有了git,我可以信心十足,因為團隊裡每個人在自己電腦上的克隆就是一份可用的備份。另外git裡的幾乎每個操作都是增加資料(很少有删除的)。想搞砸都很難。這種感覺很好。
5. 産生有用的送出
把牛奶、冰淇淋和番茄投到攪拌機裡會有(至少)兩個問題。首先,啟動攪拌機後,看着這一團東西,沒人能說出你實際上放入的是什麼。另外,你沒辦法把番茄再 “復原”。你做的一批不相關的送出(一點點a特性,再帶一點b特性,還有一個小小的更新檔……)也是一樣的。對你的隊友來說,很難了解發生了什麼。當出現問 題時,他們也不能簡單地復原特性a。git能幫你避免這種混亂和建立粒狀送出。其獨一無二的“緩存區”概念能讓你決定在下一個送出裡到底包含哪些改動,甚 至小到哪些行。這是版本控制的用處所在。
6. 按自己的方式工作
當用git工作時,你可以有你自己的工作流程。那個你覺得好的流程。使用git你不需要成為程式設計高手。當然你可以連接配接多個遠端的版本庫,用變基 (rebase)代替合并,需要時工作在子子產品上。但是你也可以隻是簡單地工作在一個中央遠端版本庫上,如同在用subversion一樣。不管你的工作 流程怎樣,所有其他的優點都還在。
7. 不會把東西搞混了
分開關注是追蹤事情的最高原則。當你工作在特性a上時,任何事(人)都不會被你未完成的代碼所影響。如果這個特性不再需要了呢?或者如果在10個送出之後, 你發現你做的完全不對呢?分支是這些問題的答案。其他的版本控制系統也有分支,但是git是第一個讓它做好它該做的:快速簡單。
8. 潮流
隻有死魚才随波逐流。有時候聰明的開發者也這樣。git被越來越多的知名公司和開源項目所使用:ruby on rails,jquery,perl,debian,linux核心,還有很多。大型的社群通常自身就是一個優點,因為一個生态圈會圍繞着該系統演進。大 量的學習指南,工具,還有服務,會讓git變得更加吸引人。
<b>原文釋出時間為:2013-06-18</b>
<b>本文來自雲栖社群合作夥伴“linux中國”</b>