1. 程式人生 > >GIT與SVN的比較

GIT與SVN的比較

影響 git與svn 權限控制 不同 只有一個 情況 有一個 會有 例如

根據自己平時的使用,來比較下GIT與SVN的不同。

1. GIT是分布式的,而SVN不是,這是最核心的區別。

當然GIT跟SVN一樣也有集中式版本庫或服務器,但GIT更傾向於分布式開發。因為每個開發人員的電腦上都會有一個本地倉庫,可以獨立的對代碼進行修改,即使沒有網絡也一樣可以Commit,查看歷史版本記錄,創建項目分支等操作,開發者之間不受影響,更有利於團隊成員之間的協作。

2. 版本庫,SVN只有一個指定的中心版本庫,GIT可以有無限個版本庫。

如果中心版本庫掛了,那麽SVN就不能再工作,所有開發人員都不能進行代碼管理操作,直到恢復。而GIT不受中心版本庫的控制,可以本地管理,網絡恢復時,將本地代碼Push到遠程中心服務端倉庫即可。

3. GIT把內容按元數據方式存儲,而SVN是按文件。

SVN所有的資源控制系統都是把文件的元信息隱藏在一個.svn的文件夾裏,每個目錄下都會有一個.svn文件。而.git目錄是處於個人機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標簽、分支、版本記錄等。

4. 創建分支方便、快捷。

創建分支的時候,SVN相當於在原來的分支上把所有的文件都拷貝了一份,而GIT只是獲取文件的每個版本的元素,然後載入主要的分支,不需要拷貝原文件。不僅大大減少了存儲空間,創建分支的效率也高很多,特別是大工程。

而且每個開發者都可以在本地隨意的創建分支,用完後刪除即可,根本不影響他人。

5. 分支切換。

GIT的不同分支都在同一目錄下,可以快速的在幾個分支之間切換。而SVN不同的分支在不同的目錄下,需要進入不同的目錄。

6. 提交(commit)。

在SVN提交就直接到中心版本庫了,GIT的提交是本地的活動,先提交到本地倉庫,而且有一個緩存的過程,可以先添加到緩存再提交,等全部開發完成後再push到中心版本庫即可。

這樣的好處是,可以方便地保存記錄整個開發過程,更好的管理階段性代碼。對於一個大項目需要很長一段時間開發,開發過程難免修修改改,GIT可以很輕易的查看每天commit的代碼,即使是不完整的中間思路。

而使用SVN我們都只會在保證代碼正確,不會影響原有功能的情況下才會上庫,不然我們將無法阻止嚴重問題的蔓延。

7. GIT是開源的,有活躍的開源社區。

8. GIT沒有一個全局版本號,而SVN有,這是跟SVN相比GIT缺少的一個特征。

9. SVN的權限控制比GIT做的好,因為這個原因很多公司還是用SVN,畢竟代碼是軟件的核心競爭力,權限控制也很重要。

GIT與SVN的比較