搜尋

首頁  >  問答  >  主體

git、svn的區別

對於snv,現在大部分公司都在用,那麼git呢,我最近在關注,你們覺得哪個好用,哪個功能更強大呢,它們有什麼區別呢? ? ?

大家讲道理大家讲道理2798 天前883

全部回覆(7)我來回復

  • 怪我咯

    怪我咯2017-04-25 09:05:25

    svn 是集中式版本管理系統,是較傳統的 CVS 的繼承者。它是典型的 C/S 結構:有一個中心倉庫,裡面保存了專案程式碼的不同版本。而開發人員在本地在任何時候只有這個倉庫中的一個版本,如果想要其他版本,或者同步版本,必須和這個中心伺服器通訊才能獲得。想像一個極端的場景,如果中心伺服器的硬碟報銷,你無法從自己的硬碟上重建專案的所有版本,即使你是這個專案的唯一開發者,所有版本都在你的硬碟上建立。

    而 git 是分散式版本管理系統,就是說沒有中心伺服器。你會給一個專案的程式碼建立一個倉庫 (Repository),即使你只是一個人開發,也可以幫你管理這個專案的程式碼。這個倉庫可以認為相當於 SVN 的中心伺服器,裡麵包含了程式碼的全部版本。當然,你自己不需要透過網路來和這個倉庫來互動。

    那麼對於團隊開發,豈不是每個人都有一個倉庫?是的。每位開發者都對這個專案擁有個人的倉庫,這些倉庫之間的地位是平等的。這些倉庫之間可以透過 clone (複製), pull (拉), push (推)等 SVN 沒有的操作來進行倉庫之間的同步。這讓 git 比 svn 高得多的靈活性。當然,如果團隊中的成員都自行其事地選擇版本管理方法,這個分散式模型是會帶來許多麻煩的。所以在團隊必須選擇一個統一的版本管理策略。

    在實務中,一般會建立一個中立的倉庫,不在任何成員的機器上,讓它來當團隊的仲裁者。每位成員的 git 倉庫都約定與這個中心倉庫同步,例如 github.com, bitbucket.com 等網站就是提供託管中心倉庫的服務。當然,這些網站目前都提供更多的服務,如網頁操作、PR 等。

    分散式版本管理系統不只有 git 一種,還有 Hg 等。但 git 是最成熟,得到了最多的支援。特別是 github.com 透過社交化等思路更加拓寬了它的使用場景。

    從實用上來說,SVN 對比 git 沒有優勢。個人的安裝使用上,兩者一樣方便。專案組方面,git 較為容易管理。 git 的實現極為可靠和高效,大大鼓勵了多分支開發,git 實踐中的 git-flow 等高階的團隊工作策略更讓 git 具有極高的價值。

    當然,git 在理論上比 svn 有更多的操作,需要學習的概念也多得多。但理解這些絕對是值得的。

    最後推薦 SourceTree 軟體,它比一般 IDE 中的版本管理要漂亮得多,對於新手來說非常直觀和容易學習。

    回覆
    0
  • 迷茫

    迷茫2017-04-25 09:05:25

    如果沒有用到multiple site這種需要異地開發和合併類需求的話,svn就足夠了。而且相對簡單。

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-04-25 09:05:25

    現在大部分都在用git吧

    回覆
    0
  • 高洛峰

    高洛峰2017-04-25 09:05:25

    以後提問的時候請注意拼寫,並且請不要在沒有解決問題的情況下採納問題,給人刷經驗的嫌疑。

    這種問題過於開放,不容易有針對地回答,即使回答了也不一定能夠得到很多幫助。

    我覺得git比較偏向社交,也就是你想把你的idea讓別人也知道,當然,我指的是 https://github.com/ 。
    git用起來挺方便的,除了github的訪問速度不是很樂觀,整體來說是不錯的。

    svn沒怎麼用過,但是聽說有git-svn這種概念(軟體),我覺得掌握一個git對我來說足矣。

    其他的等高人回答好了。

    回覆
    0
  • 習慣沉默

    習慣沉默2017-04-25 09:05:25

    應該有很多人都糾結過這個,點這裡查看吧。

    回覆
    0
  • 迷茫

    迷茫2017-04-25 09:05:25

    svn是集中式版本控制系統,一個專案只有唯一的一個版本庫與之對應,所有專案成員都透過網路向該伺服器提交。具有輕量拷貝、保存原始拷貝等功能,有集中式固有的單點故障、網路延遲等問題。
    git為Linus開發的分散式版本控制系統,具有獨特的設計,性能高,使用習慣和其他的控制系統差異很大。

    參考資料:《Git權威指南》蔣鑫

    回覆
    0
  • 世界只因有你

    世界只因有你2017-04-25 09:05:25

    其實我也有這個疑問。我現在一台win7,一台linux,但是如何才可以讓他們一起提交程式碼共享

    回覆
    0
  • 取消回覆