SVN,Git等等,版本控制軟體哪款好?


除非必須要對大量的二進位文件進行版本管理,一般建議使用 Git


文無第一,武無第二。

程序員個人用的話,Git更合適一些。現在Github很流行,使用Git可以更好地參與到Github上的各種項目的使用和開發中去。當然如果能學會使用SVN的話就更好了,技多不壓身嘛。SVN本身也是很優秀的版本控制軟體。

在公司內部使用的話,需要考慮實際業務和領導的態度。譬如現在做Android開發的公司會用Git+Gerrit,互聯網業務會用Git+Gitlab,而做傳統軟體的公司可能還在用SVN或者一些不是很流行的軟體,譬如ClearCase,甚至還有些你連名字都沒聽過的版本控制軟體。SVN用來管理文檔、圖片、image文件等二進位文件是非常合適的,尤其是使用者不侷限於程序員的場景。對於策劃、測試來說,SVN使用起來更加友好。領導的態度也很重要,胳膊擰不過大腿。如果領導比較保守,覺得Git難用、不安全什麼的,那麼就安心地用SVN吧。如果領導覺得不用Git不行的時候,自然會換的。譬如有些公司可用Git可用SVN,而客戶公司是用Git的,公司還堅持只用SVN的話,會被客戶鄙視的。

Git和SVN相比有幾個明顯的缺點:

  1. 學習曲線太陡了。要精通的話,需要花費大量的時間和精力去學習和練習。很多(懶惰的)碼農已經覺得Git很難用了,對於策劃、測試等來說更加是天書級別的,能準確地使用基本的幾個命令和操作已經很好了。
  2. 如果大型的二進位文件比較多的話,倉庫會很臃腫。雖然有些優化措施和擴展,但是因為第1點原因,一般用戶使用的時候會很難受。
  3. 自身沒有現成的許可權控制。一般通過託管服務來實現,譬如由Github,Gitlab,Gerrit等來完成。這要多維護一套系統,增加了成本。

但是如果你是一個程序員的話,學會並且精通這兩個工具,對工作是很有幫助的。


謝邀。

2018 年,該棄用 SVN 了。

如果不得已需要用到 SVN,請參考此回答: Mac 上最好用的 SVN 客戶端是什麼?

幾年過去,又有不少新的 Git GUI 出現,推薦 Fork - a fast and friendly git client for Mac 和 GitUp 。


建議用git,至於前面回答者提到的許可權問題,可以參考Openstack社區的管理思路,對於所有的代碼在merge前進行review,讓有許可權的人進行合併,解決許可權問題,或者分不同的項目來做。


瀉藥

我們公司最早用的是svn,用了大概4年時間,由於開發人員比較少,項目本身沒有版本的概念,就兩三個人協作,沒有什麼問題,但是,後來公司業務發展,人員擴張,svn的缺點太明顯了,基本沒用的分支,缺少版本管理的概念,完全無法適應稍微大一點的項目以及稍微多點人協作的項目,這個時候果斷選擇了git,依賴gitlab的強大功能,使用git很好的解決了svn帶來的痛點再說一下許可權控制,svn可以控制目錄許可權,git做不到,但是如果沒有項目完整代碼也無法完成開發測試,如果擔心許可權問題,可以從設計角度出發,不同的模塊分項目開發,也不用擔心不該擁有代碼的人拿到代碼就這樣,代碼管理沒有比git更好的選擇,建議個人用戶也選擇git,養成良好習慣


謝邀

如果項目參與的人員不僅僅是開發,還有美術,產品,策劃等 優先svn,因為上手難度低,而且svn沒有歷史包袱,對於動輒幾百M甚至上G的美術作品而言不會造成代碼庫過於龐大(每一個美術同學修改過的版本都要進入所有人的git版本庫,可想而知多恐怖),對於非開發人員的誤操作容忍度極高。 如果介意svn的branch管理,則開發人員可以考慮自己本地建立一個git repo來操作,畢竟git不要求有服務端,感覺歷史包袱多了隨時可以推倒重來。當然如果想直接用git來管,svn拜拜,那麼git-svn歡迎你。同樣的道理還可以試著使用git來管理自己打算長期使用的第三方項目,你在這個項目上進行任何更改都不必擔心。

如果項目參與人員主要是開發,而且管理的內容主要是代碼文件,以及其他種類的小文件

建議git,其多版本管理能力和零碎文件處理效率不是svn能比的,至於歷史包袱,代碼文件很小,壓縮後更是小得不能再小。


SVN和Git兩者其實都很重要,

大概的用法:

SVN : pull, commit , push

Git : pull, add , commit ,push

基本用法上,就差一個 add

Git可以在本地,並且在你不聯網的時候可以良好的工作.而SVN你需要連到公司內網才能使用.

重點

兩者都必須要會,至少要會使用,因為總有公司會用得到. 況且兩者其實都挺簡單的,唯手熟爾 :D


推薦閱讀:
相關文章