Git目前越來越受關注?
我最早切身體會到Git的優點,是一次周末在家辦公的時候,我們當時項目組使用的是svn,當開發完一個功能準備提交的時候,發現svn服務器down掉了。
這時候就有些尷尬了,因為我們一般在開發小的功能時,是不會為這個功能/需求單獨拉分支基線的,通常的做法是在開發基線上修改,一次提交也只能提交一個功能的開發,同時添加提交日志標明是開發的那個功能或需求,這樣便于merge。
但是由于svn服務器掛了,我第一個功能的代碼沒有辦法提交,那么如果我繼續開發第二個功能的時候,那么commit會非常的麻煩,如果同時修改了相同的文件,那么commit會難上加難。
Git的出現,實際上也是因為傳統的集中式代碼管理工具的痛點SVN屬于集中式代碼管理工具,這類工具的一個最大的特點是有一個服務器,所有的客戶端都需要連接這個服務器,進行代碼的相關操作;
顯而易見,這個服務器可能會成為瓶頸,如果這臺服務器掛了,或者網絡不通,那么是沒有辦法進行update、commit等操作的,甚至連查看代碼提交歷史都無法做到;
如果服務器無法恢復,那么將是災難性的。
那么Git的優點有哪些呢?Git屬于分布式代碼管理工具,雖然也會有中央代碼庫,但更重要的是,會有本地化的版本庫,支持離線提交,可以在自己的代碼庫上做提交代碼、創建分支、回滾等操作,不會影響到其他的開發者;
因為本地也有版本庫,就算在斷網的情況下,也可以使用;當網絡恢復的時候,再通過PULL和PUSH完成和服務器同步以及提交;
中央代碼庫的作用只是為了方便開發人員“交換”彼此的修改,但是沒有它的話,開發者也一樣可以干活兒;就算是中央代碼庫掛了,也沒有關系,因為每個開發者本地都有一套完整的版本;
Git還有速度快、靈活、沖突容易解決等優點。
不過,不管是集中式代碼管理工具還是分布式代碼管理工具,它們只是個【工具】,學習起來都不困難,建議程序員們都學習使用一下。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。