關於Git和SVN的對比

2021-09-22 09:33:02 字數 1181 閱讀 9305

1.git的提交是乙個dag有向無歡圖.可以看到哥哥分支之間的合併關係.svn的提交是一條直線.

2.git的提交版本號不是乙個簡單遞增的數字,而是乙個長達40位的十六進製制數字(雜湊值)

但是可以適用剪短的格式.只要不衝突.git的提交都記錄了父提交甚至是雙親或者多親提交,因此可以很容易的從任意

乙個提交開始建立一條指向歷史提交的跟蹤連.

3.svn的分支和里程碑看起來和目錄一樣.

git的分支和里程碑名字雖然看起來像是目錄,但是實際上和工作區的目錄完全沒有關係.只是對提交id的乙個記號而已.

4.svn中的.svn目錄不但有跟蹤工作區檔案狀態的跟蹤檔案,而且還有每個檔案的原始拷貝.

這樣有的操作可以脫離網路執行了,例如:差異比較,工作區檔案的回滾.

但是這樣在進行內容檢索的時候會搜尋出兩份,太干擾了,這樣會造成本地檔名的資訊洩露.千萬不要在web伺服器上用svn檢出.

git的操作不需要網路.在本地就有完整的版本庫.幾乎所有的操作都是在本地完成的.

5.svn的checkout檢出命令在工作區建立時一次性完成;

git 沒有update命令,還要經常執行checkout命令.

svn的update命令執行的很慢.之所以svn經常要更新是因為svn的版本庫再遠端.

git的版本庫是在本地.本地版本庫會隨著本地工作區中的操作(如提交)而更新.

git的checkout檢出操作經常用於使用者切換分支.或者從本地版本庫檢出丟失的檔案或者覆蓋本地錯誤改動的檔案

git中的git fetch 和git pull也比較耗時的網路操作命令.這兩個操作是從遠端版本庫獲取他人的改動.

svn的checkout命令和git的clone命令挺像.

git的clone不但建立了本地工作區,而且在本地複製了和遠端版本庫一樣的本地版本庫.

svn的update和git fetch,git pull類似.

6.git的commit命令執行的那麼快.因為git的版本庫就在本地.

也許會覺得svn的commit命令和git的push更像.其實這是個誤會.

如果git不做本地提交,是不能通過推送命令(git push)將我的本地提交共享給(推送給)

其他版本庫的,svn的每一次提交都 要和版本庫進行網路通訊.

git可以在本地多次提交.知道主人想喝咖啡了才執行一次git push.將我的本地版本庫中的的新提交推送給遠端版本庫.

關於Git和SVN的對比

1.git的提交是乙個dag有向無環圖.可以看到各個分支之間的合併關係.svn的提交是一條直線.2.git的提交版本號不是乙個簡單遞增的數字,而是乙個長達40位的十六進製制數字 雜湊值 但是可以適用剪短的格式.只要不衝突.git的提交都記錄了父提交甚至是雙親或者多親提交,因此可以很容易的從任意 乙個...

GIT和svn的對比

svn是subversion的簡稱,是乙個開放源 的版本控制系統,支援大多數常見的作業系統。作為乙個開源的版本控制系統,subversion管理著隨時間改變的資料。這些資料放置在乙個 資料檔案庫 repository 中。這個檔案庫很像乙個普通的檔案伺服器,不過它會記住每一次檔案的變動。這樣你就可以...

SVN和Git的對比

svn subversion 是集中式管理的版本控制器,而git是分布式管理的版本控制器!這是兩者之間最核心的區別。svn只有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本,而協同工作的人們都通過客戶端連到這台伺服器,取出最新的檔案或者提交更新。git每乙個終端都是乙個倉庫,客戶端並不只提取最新...