git與svn對比

git 與 svn 對比

 

git的使用不須要聯機

SVN集中式版本控制:每一個人的版本都是提交到服務器,服務器壞了就雪崩。
git分佈式版本控制:  安全,每人本地有個版本庫,每一個人均可以充當‘服務器git

它的使用流程不須要聯機,能夠先將對代碼的修改,保存在本機。等上網以後,再實時推送過去。github

 

提交代碼,查看日誌,推送具備閃電般的速度

git提交是個本地操做,相對svn閃電通常。安全

本地包含了完整的日誌,無需網絡服務器

git向遠程服務器推送提交內容相比svn更快網絡

 

每一個git存儲庫只有一個git目錄

和 SVN不一樣,一個Git項目通常只在項目的根目錄下建一個「.git」目錄,而SVN則會在項目的每個目錄下建一個」.svn」目錄ssh

 

git項目移植更方便

Git把全部的歷史提交信息所有存儲在「Git目錄」裏,它就是一個Git項目的倉庫;你對本地的源代碼進行編輯修改後建立的提交也都會先保存在這裏面,而後再推送到遠端的服務器。當咱們我把項目目錄和「Git目錄」一塊兒拷到其它電腦裏,它能立刻正常的工做(全部的提交信息全都保存在Git目錄裏);甚至能夠只把「Git目錄」拷走也行,可是要再簽出(checkout)一次。分佈式

git支持tag屬性

svn在模型上是沒有分支和tag的。tag是經過目錄權限限制(對開發只讀)來保證不變。svn

git模型上支持tag,保證只讀。工具

 

合併對提交過程的保留

git:合併操做保留原有的提交過程(即保留了合併來源的做者、提交次數、分離提交的內容)。spa

svn:合併操做把來源多個提交合併成了一個合併提交,即在提交歷史中Crash了天然的提交過程。

 

更強大智能的合併能力

git:重命名(不管文件還有目錄)提交 , 能夠合併上文件重命名前的這些文件的提交。

svn:重命名(不管文件還有目錄)提交後,你本地/或是分支上 有文件重命名前的這些文件的修改或提交,在作合併操做時,恭喜,你會碰上傳說中難搞的樹衝突

由於害怕svn樹衝突,在包名調整(重命名目錄)或類名調整(重命名文件)前,我不得不先向一塊兒開發的組員廣播:

  1. 提交你的修改
  2. 暫停相關類的修改
  3. 我開始作調整
  4. 等我修改好後,你再開始修改

廉價好用的本地分支

git:有本地分支

svn:無本地分支

git能夠方便建立本地分支,且建立分支的時間是O(1),即瞬間就建立好了。因爲分支能夠是本地的,也就不存在svn目錄權限的問題。

 git能保證數據的完整性

git中全部數據在存儲前都計算校驗和,而後以校驗來引用,因此你在傳輸中丟失文件,git都知道。具有斷點續傳功能。

缺點

(1)git的入門,稍微有點麻煩,須要在本機建立一個ssh的鑰匙。

(2)圖形化操做界面不及svn那麼好用

 

git和github的關係

git是一個很是強大的版本管理工具。github則是一個基於git的日益流行的開源項目託管庫。

 

Git把全部的歷史提交信息所有存儲在「Git目錄」裏,它就是一個Git項目的倉庫;你對本地的源代碼進行編輯修改後建立的提交也都會先保存在這裏面,而後再推送到遠端的服務器。當咱們我把項目目錄和「Git目錄」一塊兒拷到其它電腦裏,它能立刻正常的工做(全部的提交信息全都保存在Git目錄裏);甚至能夠只把「Git目錄」拷走也行,可是要再簽出(checkout)一次。

相關文章
相關標籤/搜索