亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解版本控制利器Git,SVN的異同以及適用范圍

 更新時(shí)間:2014年11月04日 14:05:11   投稿:hebedich  
本文通過(guò)對(duì)版本控制程序git及SVN進(jìn)行對(duì)比分析其優(yōu)缺點(diǎn),以及他們的適用范圍,希望對(duì)大家能有所幫助

使用git不久,粗淺理解:

1)適用對(duì)象不同。Git適用于參與開(kāi)源項(xiàng)目的開(kāi)發(fā)者。他們由于水平高,更在乎的是效率而不是易用性。Svn則不同,它適合普通的公司開(kāi)發(fā)團(tuán)隊(duì)。使用起來(lái)更加容易。

2)使用的場(chǎng)合不同。Git適用于通過(guò)Internet,有多個(gè)開(kāi)發(fā)角色的單個(gè)項(xiàng)目開(kāi)發(fā),Svn適合企業(yè)內(nèi)部由項(xiàng)目經(jīng)理統(tǒng)一協(xié)調(diào)的多個(gè)并行項(xiàng)目的開(kāi)發(fā)。

3)權(quán)限管理策略不同。Git沒(méi)有嚴(yán)格的權(quán)限管理控制,只要有帳號(hào),就可以導(dǎo)出、導(dǎo)入代碼,甚至執(zhí)行回退操作。Svn則有嚴(yán)格的權(quán)限管理,可以按組、按個(gè)人進(jìn)行針對(duì)某個(gè)子目錄的權(quán)限控制。區(qū)分讀、寫權(quán)限。更嚴(yán)格的,不支持回退操作。保證代碼永遠(yuǎn)可以追蹤。

4)分支(branch)的使用范圍不一樣。Git中,你只能針對(duì)整個(gè)倉(cāng)庫(kù)作branch,而且一旦刪除,便無(wú)法恢復(fù)。而svn中,branch可以針對(duì)任何子目錄,它本質(zhì)上是一個(gè)拷貝操作。所以,可以建立非常多、層次性的branch,并且,在不需要時(shí)將其刪除,而以后需要時(shí)只要checkout老的svn版本就可以了。

5)基于第三點(diǎn),Git適用于單純的軟件項(xiàng)目,典型的就是一些開(kāi)源項(xiàng)目,比如Linux內(nèi)核、busybox等。相反,Svn擅長(zhǎng)多項(xiàng)目管理。比如,你可以在一個(gè)svn倉(cāng)庫(kù)中存放一個(gè)手機(jī)項(xiàng)目的bsp/設(shè)計(jì)文檔/文件系統(tǒng)/應(yīng)用程序/自動(dòng)化編譯腳本,或者在一個(gè)svn中存放5款手機(jī)項(xiàng)目的文件系統(tǒng)。git中必須建立n(項(xiàng)目數(shù))*m(組件數(shù))個(gè)倉(cāng)庫(kù)。Svn中只需要最多n或者m個(gè)就可以了。

6)Git使用128位ID作為版本號(hào),而且checkout時(shí)要注明是哪個(gè)branch,而svn使用一個(gè)遞增的序列號(hào)作為全局唯一的版本號(hào),更加簡(jiǎn)明易懂。雖然可以使用gittag來(lái)建立一些文字化的別名,但是畢竟那只是針對(duì)特殊版本。

7)可跟蹤性,git的典型開(kāi)發(fā)過(guò)程為:建立分支,進(jìn)行開(kāi)發(fā),提交到本地master,刪除分支。這樣做的后果是以前的修改細(xì)節(jié)會(huì)丟失。而在svn下做同樣的事情,不會(huì)丟失任何細(xì)節(jié)。這里是一個(gè)有趣的鏈接,表明了git下典型的工作方式:(以master為核心,不斷創(chuàng)建新branch,刪除舊branch):

http://www.kernel.org/pub/software/scm/git/docs/howto/separating-topic-branches.txt

8)局部更新,局部還原。SVN由于是在文件夾建立一個(gè).svn文件夾來(lái)實(shí)現(xiàn)管理,所以可以很簡(jiǎn)單實(shí)現(xiàn)局部更新或者還原。假如你只希望更新某些部分,則svn可以很好實(shí)現(xiàn)。同時(shí)代碼寫錯(cuò)了,同時(shí)可以很好實(shí)現(xiàn)局部還原,當(dāng)然git也可以通過(guò)歷史版本還原,但是無(wú)法簡(jiǎn)單地實(shí)現(xiàn)局部還原。

SVN屬于集中化的版本控制系統(tǒng)

這種做法帶來(lái)了許多好處,特別是相較于老式的本地VCS來(lái)說(shuō)。現(xiàn)在,每個(gè)人都可以一定程度上看到項(xiàng)目中的其他人正在做些什么。而管理員也可以輕松掌控每個(gè)開(kāi)發(fā)者的權(quán)限。

事分兩面,有好有壞。這么做最顯而易見(jiàn)的缺點(diǎn)是中央服務(wù)器的單點(diǎn)故障。若是宕機(jī)一小時(shí),那么在這一小時(shí)內(nèi),誰(shuí)都無(wú)法提交更新、還原、對(duì)比等,也就無(wú)法協(xié)同工作。如果中央服務(wù)器的磁盤發(fā)生故障,并且沒(méi)做過(guò)備份或者備份得不夠及時(shí)的話,還會(huì)有丟失數(shù)據(jù)的風(fēng)險(xiǎn)。最壞的情況是徹底丟失整個(gè)項(xiàng)目的所有歷史更改記錄,被客戶端提取出來(lái)的某些快照數(shù)據(jù)除外,但這樣的話依然是個(gè)問(wèn)題,你不能保證所有的數(shù)據(jù)都已經(jīng)有人提取出來(lái)。
Subversion原理上只關(guān)心文件內(nèi)容的具體差異。每次記錄有哪些文件作了更新,以及都更新了哪些行的什么內(nèi)容。

Subversion的特點(diǎn)概括起來(lái)主要由以下幾條:

每個(gè)版本庫(kù)有唯一的URL(官方地址),每個(gè)用戶都從這個(gè)地址獲取代碼和數(shù)據(jù);
獲取代碼的更新,也只能連接到這個(gè)唯一的版本庫(kù),同步以取得最新數(shù)據(jù);
提交必須有網(wǎng)絡(luò)連接(非本地版本庫(kù));
提交需要授權(quán),如果沒(méi)有寫權(quán)限,提交會(huì)失??;
提交并非每次都能夠成功。如果有其他人先于你提交,會(huì)提示“改動(dòng)基于過(guò)時(shí)的版本,先更新再提交”… 諸如此類;
沖突解決是一個(gè)提交速度的競(jìng)賽:手快者,先提交,平安無(wú)事;手慢者,后提交,可能遇到麻煩的沖突解決。
Git屬于分布式的版本控制系統(tǒng)
自2005年誕生于以來(lái),Git日臻成熟完善,在高度易用的同時(shí),仍然保留著初期設(shè)定的目標(biāo)。它的速度飛快,極其適合管理大項(xiàng)目,它還有著令人難以置信的非線性分支管理系統(tǒng),可以應(yīng)付各種復(fù)雜的項(xiàng)目開(kāi)發(fā)需求。
與SVN不同,Git記錄版本歷史只關(guān)心文件數(shù)據(jù)的整體是否發(fā)生變化。Git并不保存文件內(nèi)容前后變化的差異數(shù)據(jù)。實(shí)際上,Git更像是把變化的文件作快照后,記錄在一個(gè)微型的文件系統(tǒng)中。每次提交更新時(shí),它會(huì)縱覽一遍所有文件的指紋信息并對(duì)文件作一快照,然后保存一個(gè)指向這次快照的索引。為提高性能,若文件沒(méi)有變化,Git不會(huì)再次保存,而只對(duì)上次保存的快照作一連接。

簡(jiǎn)略的說(shuō),Git具有以下特點(diǎn):

Git中每個(gè)克隆(clone)的版本庫(kù)都是平等的。你可以從任何一個(gè)版本庫(kù)的克隆來(lái)創(chuàng)建屬于你自己的版本庫(kù),同時(shí)你的版本庫(kù)也可以作為源提供給他人,只要你愿意。
Git的每一次提取操作,實(shí)際上都是一次對(duì)代碼倉(cāng)庫(kù)的完整備份。提交完全在本地完成,無(wú)須別人給你授權(quán),你的版本庫(kù)你作主,并且提交總是會(huì)成功。
甚至基于舊版本的改動(dòng)也可以成功提交,提交會(huì)基于舊的版本創(chuàng)建一個(gè)新的分支。
Git的提交不會(huì)被打斷,直到你的工作完全滿意了,PUSH給他人或者他人PULL你的版本庫(kù),合并會(huì)發(fā)生在PULL和PUSH過(guò)程中,不能自動(dòng)解決的沖突會(huì)提示您手工完成。
沖突解決不再像是SVN一樣的提交競(jìng)賽,而是在需要的時(shí)候才進(jìn)行合并和沖突解決。
總之,公司的開(kāi)發(fā)團(tuán)隊(duì)在進(jìn)行的項(xiàng)目開(kāi)發(fā)管理時(shí),svn是更好的選擇,團(tuán)隊(duì)成員共同維護(hù)公司的中心版本。

若是開(kāi)源項(xiàng)目,則git更加適合,每個(gè)人都可以維護(hù)自己專屬的版本,同時(shí)有g(shù)ithub開(kāi)源社區(qū)支持。

相關(guān)文章

  • 如何巧用vimdiff來(lái)替代原始的svn diff和git diff(效率提升)

    如何巧用vimdiff來(lái)替代原始的svn diff和git diff(效率提升)

    這篇文章主要介紹了如何巧用vimdiff來(lái)替代原始的svn diff和git diff(效率提升),需要的朋友可以參考下
    2020-07-07
  • git使用教程(最詳細(xì)、最傻瓜)

    git使用教程(最詳細(xì)、最傻瓜)

    這篇文章主要介紹了git使用教程(最詳細(xì)、最傻瓜),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Git安裝詳細(xì)圖文教程(Git?安裝過(guò)程的每一個(gè)步驟)

    Git安裝詳細(xì)圖文教程(Git?安裝過(guò)程的每一個(gè)步驟)

    這篇文章主要介紹了Git安裝詳細(xì)圖文教程(Git?安裝過(guò)程的每一個(gè)步驟),本文以Git-2.35.1.2-64-bit.exe為例給大家講解安裝過(guò)程,需要的朋友可以參考下
    2023-02-02
  • Jenkins使用publish?html?report插件展示HTML報(bào)告的方法

    Jenkins使用publish?html?report插件展示HTML報(bào)告的方法

    這篇文章主要介紹了Jenkins使用publish?html?report插件展示HTML報(bào)告的方法,展示普通的html如何展示在jenkins上,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • 防止刪庫(kù)跑路及高級(jí)代碼投毒技巧

    防止刪庫(kù)跑路及高級(jí)代碼投毒技巧

    這篇文章主要為大家介紹了防止刪庫(kù)跑路及高級(jí)代碼投毒技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • github 常用命令總結(jié)大全

    github 常用命令總結(jié)大全

    這里整理了github 常用命令的知識(shí),希望能幫助使用GitHub的朋友快速掌握常用命令,有需要的朋友參考下
    2016-09-09
  • 一文分享如何使用vscode打斷點(diǎn)

    一文分享如何使用vscode打斷點(diǎn)

    這篇文章主要給大家介紹了關(guān)于如何使用vscode打斷點(diǎn)的相關(guān)資料,最近用vscode進(jìn)行斷點(diǎn)調(diào)試的時(shí)候總是不順利,遂自己總結(jié)了斷點(diǎn)調(diào)試的方法,需要的朋友可以參考下
    2023-07-07
  • 解決Git推送錯(cuò)誤non-fast-forward的方法

    解決Git推送錯(cuò)誤non-fast-forward的方法

    這篇文章介紹了解決Git推送錯(cuò)誤non-fast-forward的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 詳解git merge命令應(yīng)用的三種情景

    詳解git merge命令應(yīng)用的三種情景

    這篇文章主要介紹了詳解git merge命令應(yīng)用的三種情景,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解git的基本使用方法

    詳解git的基本使用方法

    這篇文章主要介紹了詳解git的基本使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論