Git 的優點主要有:html
一、更方便的 Mergegit
分佈式管理必然致使大量的 Branch 和 Merge 操做。所以分佈式版本控制系統都特別注意這方面。在傳統的 CVS 裏面製做 Branch 和 Merge 簡直就是噩夢,Subversion 做爲一個用於替代 CVS 的系統,專門改進了 Branch 操做。然而彷佛人們沒有注意到,Branch 是輕鬆了,但是 Merge 呢?若是不能很方便地 Merge 回來,作 Branch 仍然是噩夢。服務器
事實上,我就經歷過在開發團隊裏面因爲隊友操做不對而在 Merge 的時候把個人許多代碼都覆蓋掉了。當時正是使用的 subversion 。雖然源代碼仍然在歷史裏面,可是要去一個一個地找出被覆蓋掉的文件並恢復過來確實是一件很難忘的事情。微信
二、更方便的管理網絡
傳統的版本控制系統使用中央倉庫,一些倉庫相關的管理就只能在倉庫上進行。賦予開發團隊每個人中央倉庫的管理權限是很是很差的。可是有時候確實會比較不方便的地方。機器學習
三、更健壯的系統分佈式
分佈式系統通常狀況下老是比單服務端的系統要健壯,由於當服務端一旦掛掉了整個系統就不能運行了。然而分佈式系統一般不會由於一兩個節點而受到影響。學習
四、對網絡的依賴性更低測試
雖然如今網絡很是普及,可是並非隨時隨地都有高速網絡,甚至有時候根本沒有網絡能夠訪問。低速的網絡會讓人心情煩躁,有時候就呆呆地盯着屏幕上的 commit 進度,什麼事情也幹不了。而沒有網絡鏈接更是致命的:你沒法 commit !這表示你進行任何改動之前都必須當心翼翼,不然你可能再也找不會你曾經寫的一些代碼了。大數據
五、更少的「倉庫污染」
有時候你要作一個模塊,它不是太大,因此沒有必要爲它新建一個 branch ,可是它又不是那麼小,不可能一次提交就作好。因而便會提交一些不完整的代碼到倉庫,有時候會致使整個程序沒法運行,嚴重影響團隊裏其餘人的開發。大多數人在這種狀況下的解決辦法都是寫完以後再提交。可是做爲習慣了版本控制的人來講,進行不計後果的大幅修改是常常的事情,到後來忽然發現本身先前的代碼沒有提交,就後悔莫及了。若是是分佈式系統的話就不會存在這樣的問題,由於本地倉庫的修改不會影響到別人的倉庫。當你完成並測試之後,就能夠在郵件列表裏面說:我已經把這個模塊作好了。而後感興趣的人就能夠從你這裏 pull 你的成果了。
雖然網上各類對Git的譽美之詞決不止於此,可是在Git的主站上,仍是儘量客觀的對Git和Subversion進行了一番比較(GitSvnComparsion)。另外,Subversion目前經過 SVK 也已經提供了必定程度上的源代碼庫分佈式的管理能力,可以實現源代碼的離線提交等功能。
優勢:
(1)適合分佈式開發,強調個體。
(2)公共服務器壓力和數據量都不會太大。
(3)速度快、靈活。
(4)任意兩個開發者之間能夠很容易的解決衝突。
(5)離線工做。
同時,你們能夠關注個人我的博客:
http://www.cnblogs.com/zlslch/ 和 http://www.cnblogs.com/lchzls/
詳情請見:http://www.cnblogs.com/zlslch/p/7473861.html
人生苦短,我願分享。本公衆號將秉持活到老學到老學習無休止的交流分享開源精神,匯聚於互聯網和我的學習工做的精華乾貨知識,一切來於互聯網,反饋回互聯網。
目前研究領域:大數據、機器學習、深度學習、人工智能、數據挖掘、數據分析。 語言涉及:Java、Scala、Python、Shell、Linux等 。同時還涉及日常所使用的手機、電腦和互聯網上的使用技巧、問題和實用軟件。 只要你一直關注和呆在羣裏,天天必須有收穫
以及對應本平臺的QQ羣:161156071(大數據躺過的坑)