我認識的 SVN 和 git

來到上海的這些天,跟一些公司技術(shù)人員的交流之后,發(fā)現(xiàn)很多公司使用的代碼版本管理工具是 SVN。

在過去三年的工作中,我們公司一直使用的是 git管理工具,leader 也一直強調(diào) git 全面優(yōu)于 SVN。這么多天以來,發(fā)現(xiàn)如此多的公司,團隊在使用 SVN,我想 SVN 一定是有自己的優(yōu)勢的。

經(jīng)過一晚的學習了解,鄙人將自己了解的 SVN 和 git 寫下來,供行業(yè)的使用者參考點評。

首先,我先簡單的將 git 和 SVN 的一些區(qū)別列舉出來:

1.git 是分布式管理工具,而 svn 是集中式管理

2.git 把內(nèi)容按照元數(shù)據(jù)的形式存儲,而 SVN 是按照文件存儲

3.git 分支和 SVN 的分支結(jié)構(gòu)不同

4.git 的內(nèi)容完整性要優(yōu)于 SVN

5.git 沒有一個全局的版本號,而 svn 有具體的版本號

下面是較詳細的解釋:

1.subVersion,是一個開源的版本控制系統(tǒng),支持大多數(shù)常見的操作系統(tǒng)。SVN 管理著隨時間改變的數(shù)據(jù),這些數(shù)據(jù)存放在一個中央資料檔案庫中(repository)。這個檔案庫很像一個普通的文件服務(wù)器,但它會記住每一次文件的變動。所以,我們可以瀏覽文件的變動歷史,也可以把檔案恢復(fù)到舊的版本。SVN 可以管理任何類型的文件,包括程序源碼。

2.git 是一款免費,開源的分布式版本控制系統(tǒng)。用以有效,高速度處理從很小到非常大的項目版本管理。git 是linus torvalds 為了幫助 lnux 內(nèi)核開發(fā)而開發(fā)的一個開源的版本管理軟件。

3.集中式版本管理控制系統(tǒng)的核心是服務(wù)器。開發(fā)者在開始工作之前必須從服務(wù)器獲取源碼,然后開始開發(fā),解決沖突,提交等。而分布式版本控制系統(tǒng)相比集中式最大的區(qū)別就是開發(fā)者可以將新的版本提交到本地。每一個開發(fā)者都可以通過克隆的方式,在本地拷貝一個完整的 git 倉庫。


4.工作流程:

SVN 工作流程:

1)新的一天,從服務(wù)器下載項目組最新代碼

2)進入自己的分支,開始工作,每隔一段時間向自己的分支提交一次代碼。(一般一個小時左右,或在完成一個小功能以后)

3)下班之前,將自己的分支合并到服務(wù)器的主分支上。

git 工作流程:

1)從服務(wù)器上克隆完整的 git 倉庫(包括代碼和版本信息)到單機上

2)在自己的機器上根據(jù)不同的目的創(chuàng)建分支,修改代碼。

3)在單機上自己創(chuàng)建的分支上提交代碼,

4)在單機上合并分支

5)將服務(wù)器上的最新代碼 fetch下來,然后跟自己的主分支合并。

6)生成 patch 補丁,把補丁發(fā)送給主開發(fā)者

7)主開發(fā)者會檢查各個開發(fā)者的補丁是否有沖突,如果有,根據(jù)沖突的成都決定自己解決沖突還是將沖突交給有沖突的開發(fā)者,由他們來解決補丁中的沖突,其中一人將解決后的補丁發(fā)送給主開發(fā)者。補丁全部沒有沖突之后,則通過審核。

8)一般來說,開發(fā)者可以通過 pull 命令來解決沖突

以上,是我的一點認識,謹供行業(yè)同仁參考點評!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容