最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

使用git不久,粗淺理解:

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

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

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

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

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

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

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

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

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

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

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

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

Subversion的特點概括起來主要由以下幾條:

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

簡略的說,Git具有以下特點:

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

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

相關(guān)文章

  • 解決Unable to access ''https://gitee.com/自己的項目/'': Could not resolve host: gitee.com問題

    解決Unable to access ''https://gitee.com/自己的項目/'': Could not r

    這篇文章主要介紹了解決Unable to access 'https://gitee.com/自己的項目/': Could not resolve host: gitee.com問題,需要的朋友可以參考下
    2020-09-09
  • linux?部署apache服務(wù)的步驟

    linux?部署apache服務(wù)的步驟

    這篇文章主要介紹了linux部署apache服務(wù)的步驟,部署apache服務(wù)的步驟本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • 使用動畫實現(xiàn)微信讀書的換一批效果(兩種方式)

    使用動畫實現(xiàn)微信讀書的換一批效果(兩種方式)

    這篇文章主要介紹了使用動畫實現(xiàn)微信讀書的換一批效果,本文通過實例代碼通過兩種方式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 算法系列15天速成 第四天 五大經(jīng)典查找【上】

    算法系列15天速成 第四天 五大經(jīng)典查找【上】

    在我們的生活中,無處不存在著查找,比如找一下班里哪個mm最pl,猜一猜mm的芳齡....... 對的這些都是查找
    2013-11-11
  • git分支或指定文件回退到指定版本命令詳解

    git分支或指定文件回退到指定版本命令詳解

    作為一名后端開發(fā),相信大家一定遇到過這樣的情景,代碼開發(fā)人員過多,并且開發(fā)分支過多,導致代碼版本管理困難,這樣就難免遇到一些代碼合并出錯,下面這篇文章主要給大家介紹了關(guān)于git分支或指定文件回退到指定版本命令的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Git基礎(chǔ)知識以及常用命令

    Git基礎(chǔ)知識以及常用命令

    這篇文章主要介紹了Git基礎(chǔ)知識以及常用命令,在日常工作中g(shù)it少不了,所以編寫本篇文章教大家如何使用git,便于日后工作與學習,需要的朋友可以參考下
    2023-05-05
  • wkhtmltopdf 最好用Html轉(zhuǎn)pdf的工具

    wkhtmltopdf 最好用Html轉(zhuǎn)pdf的工具

    這篇文章主要介紹了wkhtmltopdf 最好用Html轉(zhuǎn)pdf的工具,需要的朋友可以參考下
    2017-09-09
  • 完美解決webstorm啟動索引文件卡死的問題

    完美解決webstorm啟動索引文件卡死的問題

    下面小編就為大家分享一篇完美解決webstorm啟動索引文件卡死的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • 詳解git merge命令應(yīng)用的三種情景

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

    這篇文章主要介紹了詳解git merge命令應(yīng)用的三種情景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 怎樣刪除Git中緩存的用戶名和密碼

    怎樣刪除Git中緩存的用戶名和密碼

    這篇文章主要介紹了怎樣刪除Git中緩存的用戶名和密碼問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

冷水江市| 峨边| 宁化县| 南阳市| 鹿邑县| 翁源县| 望城县| 沛县| 霸州市| 闻喜县| 灌南县| 锡林郭勒盟| 商都县| 永川市| 余江县| 龙井市| 宽甸| 崇明县| 广宗县| 无棣县| 福海县| 汝城县| 克山县| 盐源县| 固安县| 孟州市| 和田市| 报价| 上高县| 华蓥市| 定兴县| 揭西县| 三明市| 岳阳市| 清苑县| 宁城县| 泰安市| 宜宾市| 天门市| 自贡市| 静安区|