回覆列表
  • 1 # 王海軍老師

    首先git具有本地的版本管理且不需要假設遠端的伺服器,這就很方便。最重要的還是能夠不汙染子目錄的track檔案。然而svn每個子目錄都要扔一個,這就造成了很大的麻煩,而且還會出現各種clean up無果. delelte後svn up異常,真的令人很無語。

    其次git具有強力的merge工具:git根據commit ticket依次再進行一次merge.提高了merge成功率.避免svn merge中的難堪。即使merge失敗也不會有任何的其他的版本檔案,只需要簡單修改就可以繼續。

    並且git還具有git gc:由於git本身不儲存檔案之前的差異檔案.只儲存每個檔案的快照,頻繁修改大檔案的情況下會造成git目錄變得很大git gc後,會在.git目錄下生成一個packfile與idx檔案.只儲存檔案差異,又解決了一個常見的問題。

    強大的branch.推薦根據的git workflow的開發流程.將workspace分成幾區.master dev feature hotfix區等。Git實現了去中心化scm工具,而github成為了新一代憑作品交流的sns+code host平臺。其他版本管理工具相比而言如google code則是每況愈下。

    Subversion是一個集中的資料倉庫。

    儘管git分散式資料倉庫的顯著優點(如快速和多副本)吸引了很多人,但在許多情況下,集中式資料倉庫更合適。例如,如果您有一些核心程式碼,您希望只允許少數人訪問,那麼您就不希望將其放入git中。許多公司都是集中管理他們的程式碼,我猜所有(重要的)政府專案估計都使用一個版本控制系統來集中資料倉庫。

    svn的理念是符合常規的。

    據說許多人(尤其是經理或老闆)對版本號的理解是一種習慣,發展是一種時間的線性軌跡,它深深紮根於他們的思想中。不是一個藉口,Git可選性不是很容易理解,事實上,你可能會注意到任何一本關於Git的書都會在第一季度的第一章告訴你放棄大腦中所有的傳統觀念,重新理解。

    Subversion只提供了一種方法,沒有第二種選擇。

    SVN是一個版本控制系統,它只提供一種方法,每個人都使用相同的方法。就是這樣。這使得您可以很容易地將程式碼從SVN遷移到其他集中管理的VCS或其他集中管理的VCS。Git不僅僅是一個版本控制系統,它實際上是一個檔案系統,它有很多拓撲知識來支援您如何在不同的環境倉庫中設定程式碼——並且沒有統一的標準。選擇正確的拓撲結構成為一個問題。

  • 2 # 艾特猿

    優勢就是git有本地倉庫的概念,本地倉庫也有分支主幹,你可以在沒有網的時候本地倉庫操作,等有網的時候在push到遠端倉庫就好了,這個應該是git和svn最大的區別了吧

  • 中秋節和大豐收的關聯?
  • 經常用快充對電動車電池好嗎?