發表文章

目前顯示的是 4月, 2015的文章

Git的強大,其他SVC怎麼辦?

這兩天花了很多時間研究這幾年來非常流行的Git。 總而言之,Git就是一個source version control的工具,一開始我真的不以為意。有什麼功能是其他家沒有的?大家都是source version control啊,有什麼特別了不起的?SVN流行很久,Perforce也是很多大企業在用,大家都可以check-out/check-in/branch/merge/revert ... Git不過就是另外一套而已啊~我錯了。 Git在兩點先天上就比全部市面上看得到的source control工具強大太多: 分散式架構 強大的branch管理機制 先講為什麼會吸引我,敝公司官方使用的是Perforce,他跟微軟很古老的那套Visual SourceSafe一樣,client必須跟server保持連線才有辦法做事,簡單說,沒連上線你連check-out都不行,所以只要網路一斷,基本上就是收工了。做任何事client必須跟server隨時保持互動,這非常麻煩討厭,基本上光是維持連線就會讓我的生產力下降。 而Git完全沒有這個限制,每個client本身也具備傳統source version control server可以做的事,平常工作只需要跟自己溝通,server的工作基本上講白了只需要保存你的code的內容和狀態(所以稱之為Repository比較正確),其他的操作都是在client上完成,當需要存放到repository保存時才需要push內容到Git repository。這樣client可以在任何環境任何狀態下工作,在家裡寫code,回到公司再push到Git repository;在咖啡廳寫code也一樣,甚至你要到擎天岡去寫code,沒有網路照樣讓你可以工作(某方面來說好像也不是好事 XD)。用了Git,從此你不再需要時時刻刻和SVC server保持連線。 再來,更屌的一點,完爆其他source version control工具的地方就是超級強大的branch-merge功能。我們在軟體開發上最痛苦的不外乎,一邊寫新功能,另外一邊改舊bug。當一個系統已經上線,並且開始著手開發新功能的同時,如果測出上線的系統有bug,大部分只有兩個方法: 比較土炮的是把新寫的功能全部comment掉,然後回去改舊bu