切換到Git的8個理由

奇風餘谷發表於2013-06-24

提到版本控制,最近大家都在談Git。當然,四處議論紛紛還不足以證明切換到Git上有多麼正確。這裡有一些能證明Git非常出色的有力事實。

 

1. 節省時間

想象一下,每次動滑鼠前你都要等待5分鐘。這非常討厭是不是?有了版本控制也是一樣——我們每個命令消耗幾秒,但是工作一天也累積起來了。但是Git快如閃電。把你的時間用在其他更重要的事情上,而不是等待版本控制工具的響應。

git_performance

2. 離線工作

你出差的時候要工作怎麼辦?用諸如Subversion或者CVS的集中式版本控制系統,如果你不能連上中央版本庫你就不能工作。有了Git,在你的本地機器上幾乎能做任何事:提交、檢視專案完整歷史記錄、合併(merge)或者新建分支……Git讓你來決定何時何地開始工作。

 

3. 回退錯誤

有時候我會犯錯(我也不敢相信!)。我喜歡Git的是它的一個小小的回退命令就能用於幾乎任何場景。修正最後一次提交,因為你忘記包含一個小改動。撤銷整個提交,因為那個特性已經不再需要。而且當處境變得困難時,你甚至可以用Reflog來恢復“已刪除”的提交——因為在幕後Git極少會真正刪除什麼。這樣心定氣閒。

 

4. 睡得香

你曾經粉碎過Subversion的版本庫嗎?我就做過(我說這個的時候記憶的傷痛猶在)。有了Git,我可以信心十足,因為團隊裡每個人在自己電腦上的克隆就是一份可用的備份。另外Git裡的幾乎每個操作都是增加資料(很少有刪除的)。想搞砸都很難。這種感覺很好。

 

5. 產生有用的提交

把牛奶、冰淇淋和番茄投到攪拌機裡會有(至少)兩個問題。首先,啟動攪拌機後,看著這一團東西,沒人能說出你實際上放入的是什麼。另外,你沒辦法把番茄再“回滾”。你做的一批不相關的提交(一點點A特性,再帶一點B特性,還有一個小小的補丁……)也是一樣的。對你的隊友來說,很難理解發生了什麼。當出現問題時,他們也不能簡單地回滾特性A。Git能幫你避免這種混亂和建立粒狀提交。其獨一無二的“快取區”概念能讓你決定在下一個提交裡到底包含哪些改動,甚至小到哪些行。這是版本控制的用處所在。

切換到Git的8個理由

 

6. 按自己的方式工作

當用Git工作時,你可以有你自己的工作流程。那個你覺得好的流程。使用Git你不需要成為程式設計高手。當然你可以連線多個遠端的版本庫,用變基(rebase)代替合併,需要時工作在子模組上。但是你也可以只是簡單地工作在一箇中央遠端版本庫上,如同在用Subversion一樣。不管你的工作流程怎樣,所有其他的優點都還在。

 

7. 不會把東西搞混了

分開關注是追蹤事情的最高原則。當你工作在特性A上時,任何事(人)都不會被你未完成的程式碼所影響。如果這個特性不再需要了呢?或者如果在10個提交之後,你發現你做的完全不對呢?分支是這些問題的答案。其他的版本控制系統也有分支,但是Git是第一個讓它做好它該做的:快速簡單。

切換到Git的8個理由

8. 潮流

只有死魚才隨波逐流。有時候聰明的開發者也這樣。Git被越來越多的知名公司和開源專案所使用:Ruby On Rails,jQuery,Perl,Debian,Linux核心,還有很多。大型的社群通常自身就是一個優點,因為一個生態圈會圍繞著該系統演進。大量的學習指南,工具,還有服務,會讓Git變得更加吸引人。

 

英文原文:git-tower,編譯:伯樂線上 – 奇風餘谷

相關文章