1. 程式人生 > >淺談Git與SVN的使用感受

淺談Git與SVN的使用感受

開發 -c 運用 svn的使用 我們 repo easy 這一 style

作為版本號控制工作。兩者的做大的差別應該在於:Git屬於分布式版本號控制工具,而SVN屬於集中式的版本號控制工具。分布式的優點是什麽呢?舉個樣例來說。當你在火車上離線狀態下編程工作,在某個階段會須要先保存正確的代碼狀態(以便興許出問題時能夠回滾)。再開始興許的編碼,這個時候Git就會發揮它的優勢。由於它的分布式特性,能夠同一時候擁有遠程倉庫和本地倉庫,在火車上。即使不聯網,也能夠將程序的改動commit至本地的倉庫,在聯網的條件下再push到遠程倉庫中。而SVN由於是集中式的控制管理,所以它的每一次commit都須要聯網提交至server端。
除了上面的描寫敘述的優勢。git還有其它讓人喜歡的特點:

  1. git僅僅在倉庫(repo)的根文件夾下創建.git文件夾,而svn會在每一個文件夾下創建.svn文件夾(會產生更大的記錄內容)
  2. 當你刪除或是移動倉庫內的某個文件時,git會幫你識別出詳細的操作,而svn須要人為的指出
  3. 程序在編譯過程產生的文件,如.pyc。假設不想提交至倉庫。git能夠在根文件夾下指定,從而運用到子文件夾。而svn就不easy做到這一點

如今越來越多的人使用git。它的風頭也漸漸蓋過了svn,而當我在某遊戲公司實習時。卻意外發現了svn的優勢。前面講到,git是一種分布式的版本號控制工具,支持遠程倉庫和本地倉庫,因此也就添加了使用的復雜性。與遠程交互用push/pull,與本地交互用commit/checkout,並且它也缺乏好用的client。我們的遊戲開發。須要策劃、程序猿、美術協同工作,盡管程序猿接受git的使用相對簡單,可是要給策劃、美術做培訓須要時間、人力的成本,svn以它簡單操作的優勢。在公司內部盛行。並且,它有一個非常好用的client:TortoiseSVN

淺談Git與SVN的使用感受