Git和SVN,代碼管理哪個更好?Git真的比SVN更好麼?

燚智能硬件開發網

用簡單的語言,講複雜的技術

代碼管理,是幹什麼的?

代碼改了,改好了老問題,改出來新問題。哪裡出問題了?

幾個工程師一起開發,各自的版本都沒問題,合到一起出問題了。誰的問題?

軟件開發工程師,都需要代碼管理工具,能夠記錄誰、什麼時候、改了什麼代碼。一旦出現bug,就可以逐步排查。

(上學的時候老師肯定不教這些,而上班的第一課往往都是代碼管理工具怎麼使用)

Git和SVN,代碼管理哪個更好?Git真的比SVN更好麼?

用的比較多的代碼管理工具

嵌入式產品和物聯網產品開發中,使用比較多是Git和SVN。

Git:免費、開源、分佈式版本控制系統,只要會用,大小項目都合適。

Git用了分佈式版本庫的作法,每個人有自己的一套代碼,權限管理很嚴格,很多人一起開發一套軟件也不會混亂。

有很多代碼託管平臺,也是基於Git來做的,如Github,Bitbucket,碼雲、Coding、華為軟件開發雲(DevCloud)等

SVN: 比較古老的一款,是開源的代碼管理工具,是CVS的重寫和改進版。多個開發人員協同開發,共用一箇中心版本,記錄大家的文件版本,是集中管理工具中應用最廣泛的工具。

Git和SVN,代碼管理哪個更好?Git真的比SVN更好麼?

.

論Git比SVN好在哪裡?

Git和SVN最大的差異在:Git用戶有自己的本地的版本控制,SVN只有服務器上的版本控制。

Git裡,每一個開發者在本地都有一個git倉庫,在服務器上也有一個總的庫;SVN則必須要把代碼提交到中心控制器。

Git和SVN,代碼管理哪個更好?Git真的比SVN更好麼?

1、安全性:

git採用分佈式系統,每個用戶都相當於一個git的備份倉庫,同時採用哈希校正保證數據的完整性, 仿製惡意篡改;SVN 的代碼均存於中央服務器,服務器一旦出現故障,或者數據被修改,損失難以挽回。

2、開發審核:

git支持各個研發團隊自己建立分支,在代碼合併是可以從提交說明, 代碼規範等多個角度對提交逐條審核;而SVN不具備這些功能。

3、版本發佈控制:

git有良好的成員權限管理,我們可以設定只有管理者才能推送版本和分支;SVN的發佈控制並不好用,更多的是靠人為的約束和制度的管理。

4、合併支持:

Git基於對內容的追溯,而非對文件名追溯,文件改名的時候,能夠很好進行合併。而SVN遇到改名的時候就比較麻煩。

5、分支功能:

git的提交便於查詢和追溯,提交內容的歷史,時間,並且支持分支之間相互提交,操作靈活。SVN無法查詢追溯分支之間的提交歷史。

6、易用性:

SVN圖形化界面做的好一些,適合開發者少的小系統使用。如單片機類的產品開發

Git主要是命令行操作,用起來複雜一些,適合開發者較多或容量較大的系統,如Linux和Android系統的開發。

總結

人少、代碼少的,可以用SVN

人多,代碼多的,可以用Git

嫌配置麻煩,又不擔心代碼安全性的,用GitHub類的雲端代碼託管。

(以上主要針對系統級開發,在互聯網級的純軟件開發上,用svn和git的都有)


燚智能硬件開發大講堂

物聯網開發實戰派!

精彩內容回顧:

,軟件工程師必看



分享到:


相關文章: