2012-06-25 125 views
2

對於SVN,git的一個好處是「每個人都可以擁有完全備份」作爲DVCS。 我不太明白。什麼意思是「git完全備份」?

例如,John有一個分支branch_a的git倉庫,Peter有另一個branch_b的倉庫倉庫。 branch_a和branch_b不同,沒有同步備份不完整。
由於SVN他們也可以把所有的代碼都拉到本地,這是否也是一種「完全備份」?

回答

3

存儲庫的每個克隆都是完整的..好了,存儲庫的克隆:它包含每個提交。當你說

如SVN [..]是不是也是一種「全備份」

這是錯誤的,因爲在SVN你只檢出特定的修訂版本到本地工作區,就這樣。尤其是:當您的網絡連接中斷時,您無法對SVN執行任何操作。因爲一個git倉庫已經有了所有的提交(只要你不時可以獲取所有提交,例如通過git fetch --all),你可以照常工作,稍後再推送到遠程倉庫。如果有人打破了遠程存儲庫,那麼每個開發人員都有其副本。

1

在SVN的「正常」使用情況下,您只能檢出一個分支,並且只有最新版本。如果你想要另一個分支,或者一箇舊版本的文件,你需要去服務器。您可以檢出整個存儲庫,但只能檢查當前版本。如需更多信息,您需要設置存儲庫複製,這非常複雜,並且絕對不屬於常規開發人員工作流程的一部分。

在git中,你可以很容易地得到一個完整從服務器複製所有數據,只需通過正常的結帳程序。你通常從一個「克隆」開始,它擁有一切。即使你只是「拉」一個分支,你仍然可以看到所有內容的完整歷史。