1. 程式人生 > >svn與git的區別?

svn與git的區別?

git是分散式的,svn不是。

git跟svn一樣有自己的集中式版本庫或伺服器。
但git更傾向於被使用於分散式模式,
克隆版本庫後即使沒有網路也能夠commit檔案,
檢視歷史版本記錄,建立專案分支等,
等網路再次連線上Push到伺服器端。

git把內容按元資料方式儲存,而svn是按檔案。
所有的資源控制系統都是把檔案的元資訊隱藏在一個類似.svn,.cvs等的資料夾裡。
git目錄是處於你的機器上的一個克隆版的版本庫,
它擁有中心版本庫上所有的東西,
例如標籤,分支,版本記錄等。

git沒有一個全域性的版本號,svn有。

git的內容完整性優於svn。
因為git的內容儲存使用的是SHA-1雜湊演算法。

git可以有無限個版本庫,svn只能有一個指定中央版本庫。
當svn中央版本庫有問題時,
所有工作成員都一起癱瘓直到版本庫維修完畢或者新的版本庫設立完成。
每一個git都是一個版本庫,
區別是它們是否擁有活躍目錄(Git Working Tree)。

如果主要版本庫(例如:置於GitHub的版本庫)有問題,
工作成員仍然可以在自己的本地版本庫(local repository)提交,
等待主要版本庫恢復即可。工作成員也可以提交到其他的版本庫!