天天看點

【git學習一】git的原理1.背景2.git簡史3.git與svn的比較

       git是比較流行的版本管理軟體,部落客才疏學淺,到目前為止隻用過svn和git。雖然git也用了較長時間了,但是還是沒有深入學習過,這周打算閱讀Progit,對git有一個深入的總結,另外把git的一些主要指令總結下,友善日後學習工作中使用。

       讀了一遍Progit第一章節,印象比較深刻的有如下幾點。

        1.git的底層是資料庫,這樣我們就大體明白git的基本原理,把項目的快照按照編碼存入資料庫。

        2.git的最早是由linux社群的開發者開發的,膜拜大神!

        3.git的主要優勢是它是分布式的版本控制軟體,也就是除了伺服器上記錄每個代碼版本,每個終端自己的電腦上也會有.git檔案來記錄完整的項目

       這一部分還是引用網上的一個總結,感覺說的很好,摘自http://www.oschina.net/news/12542/git-and-svn

1.GIT是分布式的,SVN不是:

GIT跟SVN一樣有自己的集中式版本庫或伺服器。但,GIT更傾向于被使用于分布式模式,也就是每個開發人員從中心版本庫/伺服器上chect out代碼後會在自己的機器上克隆一個自己的版本庫。可以這樣說,如果你被困在一個不能連接配接網絡的地方時,就像在飛機上,地下室,電梯裡等,你仍然能夠提 交檔案,檢視曆史版本記錄,建立項目分支,等。對一些人來說,這好像沒多大用處,但當你突然遇到沒有網絡的環境時,這個将解決你的大麻煩。

有些謠言傳出來說subversion将來的版本也會基于分布式模式。但至少目前還看不出來。

2.GIT把内容按中繼資料方式存儲,而SVN是按檔案:

所有的資源控制系統都是把檔案的元資訊隐藏在一個類似.svn,.cvs等的檔案夾裡。如果你把.git目錄的 體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處于你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如标簽,分 支,版本記錄等。

3.GIT分支和SVN的分支不同:

然而,處理GIT的分支卻是相當的簡單和有趣。你可以從同一個工作目錄下快速的在幾個分支間切換。你很容易發現未被合并的分支,你能簡單而快捷的合并這些檔案。

【git學習一】git的原理1.背景2.git簡史3.git與svn的比較

4.GIT沒有一個全局的版本号,而SVN有:

目前為止這是跟SVN相比GIT缺少的最大的一個特征。你也知道,SVN的版本号實際是任何一個相應時間的源代 碼快照。我認為它是從CVS進化到SVN的最大的一個突破。因為GIT和SVN從概念上就不同,我不知道GIT裡是什麼特征與之對應。如果你有任何的線 索,請在評論裡奉獻出來與大家共享。

更新:有些讀者指出,我們可以使用GIT的SHA-1來唯一的辨別一個代碼快照。這個并不能完全的代替SVN裡容易閱讀的數字版本号。但,用途應該是相同的。

5.GIT的内容完整性要優于SVN:

/********************************

* 本文來自部落格  “李博Garvin“

******************************************/