Git在項(xiàng)目協(xié)作開發(fā)中所解決問題
1、Git的歷史
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng),開源、免費(fèi)。
Git 是 Linus (林納斯)為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。
Tips:
Linus在1991年創(chuàng)建Linux,現(xiàn)在已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。
Linux的壯大是靠全世界熱心的志愿者:
在2002年以前,世界各地的志愿者把源代碼文件發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!
為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?
不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?
因?yàn)長inus堅(jiān)定地反對CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。
有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費(fèi)的,和Linux的開源精神不符。
不過,到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的里也對這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個版本控制系統(tǒng)。
安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,開發(fā)Samba的這個人Andrew,試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個),被BitMover公司發(fā)現(xiàn)了,于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。
Linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git!一個月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!
Linus 對新的版本控制系統(tǒng)制訂了若干目標(biāo),如下圖所示:
Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供Git存儲,無數(shù)開源項(xiàng)目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。
歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費(fèi)而超級好用的Git了。
Git的發(fā)展歷史圖:
2、Git的特點(diǎn)
當(dāng)Git剛剛推出的時候很多人還對他發(fā)生質(zhì)疑,但是不久之后因?yàn)镚it具備非常好的特點(diǎn),導(dǎo)致了開源社區(qū)很多項(xiàng)目沒過多久,就陸陸續(xù)續(xù)的從SVN上轉(zhuǎn)移到Git上來進(jìn)行版本控制。
(1)Git的特點(diǎn)如下:
- Git中每個克隆(clone)的版本庫都是平等的。你可以從任何一個版本庫的克隆來創(chuàng)建屬于你自己的版本庫,同時你的版本庫也可以作為源提供給他人,只要你愿意。
- Git的每一次拉取操作,實(shí)際上都是一次對代碼倉庫的完整備份。
- 提交完全在本地完成,無須別人給你授權(quán),你的版本庫你作主,并且提交總是會成功。
- 甚至基于舊版本的改動也可以成功提交,提交會基于舊的版本創(chuàng)建一個新的分支。
- Git的提交不會被打斷,直到你的工作完全滿意了,PUSH給他人或者他人PULL你的版本庫,合并會發(fā)生在PULL和PUSH過程中,不能自動解決的沖突會提示您手工完成。
- 沖突解決不再像是SVN一樣的提交競賽,而是在需要的時候才進(jìn)行合并和沖突解決。
- Git版本庫統(tǒng)一放在服務(wù)器中。Git 也可以模擬集中式的工作模式,同時Git 的集中式工作模式非常靈活,
- 團(tuán)隊(duì)的成員先將服務(wù)器的版本庫克隆到本地;并經(jīng)常的從服務(wù)器的版本庫拉(PULL)最新的更新。
- 團(tuán)隊(duì)的成員將自己的改動推(PUSH)到服務(wù)器的版本庫中,當(dāng)其他人和版本庫同步(PULL)時,會自動獲取改變。
- 你完全可以在脫離Git服務(wù)器所在網(wǎng)絡(luò)的情況下,如移動辦公/出差時,照常使用代碼庫。
- 你只需要在能夠接入Git服務(wù)器所在網(wǎng)絡(luò)時,PULL和PUSH即可完成和服務(wù)器同步以及提交。
- Git提供
rebase
命令,可以讓你的改動看起來是基于最新的代碼實(shí)現(xiàn)的改動。 - Git 有更多的工作模式可以選擇,遠(yuǎn)非
Subversion
可比。 - 協(xié)同修改,多人可并行修改服務(wù)器端的同一個文件。
- 數(shù)據(jù)備份,不僅保存目錄和文件的當(dāng)前狀態(tài),還能夠保存每一個提交過的歷史狀態(tài)。
- 版本管理,在保存每一個版本的文件信息的時候要做到不保存重復(fù)數(shù)據(jù),以節(jié)約存儲空間,提高運(yùn)行效率。這方面SVN采用的是增量式管理的方式,而Git采取了文件系統(tǒng)快照的方式(對比Hash值)。
- 權(quán)限控制,對團(tuán)隊(duì)中參與開發(fā)的人員進(jìn)行權(quán)限控制。誰能創(chuàng)建版本庫,誰能向版本庫PUSH,誰能夠讀取(克?。┌姹編?。對團(tuán)隊(duì)外開發(fā)者貢獻(xiàn)的代碼進(jìn)行審核,通過fork。(Git獨(dú)有)。
- 歷史記錄,查看修改人、修改時間、修改內(nèi)容、日志信息。將本地文件恢復(fù)到某一個歷史狀態(tài)。
- 分支管理,允許開發(fā)團(tuán)隊(duì)在工作過程中多條生產(chǎn)線同時推進(jìn)任務(wù),進(jìn)一步提高效率。
(2)簡單說明:
Git有最優(yōu)的存儲能力以及非凡的性能,得益于林納斯(Linus Torvalds
:林納斯·本納第克特·托瓦茲,Linux內(nèi)核的發(fā)明人)本身的這個技能,他是Linux內(nèi)核專家,也是文件系統(tǒng)的管理專家。所以他開發(fā)出來的Git具備了最優(yōu)的存儲能力以及非凡的性能。林納斯它本身就是崇尚開源的,所以他開發(fā)的Git也是開源的。
Git還很容易做備份,還支持離線的操作。基于Git的分支管理的成本是非常低的,而且也非常容易定制工作流程。
在實(shí)際使用分布式版本控制系統(tǒng)的時候,其實(shí)很少在兩人之間的電腦上推送版本庫的修改,因?yàn)榭赡苣銈儌z不在一個局域網(wǎng)內(nèi),兩臺電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機(jī)。因此分布式版本控制系統(tǒng)通常也有一臺充當(dāng)”中央服務(wù)器”的電腦,但這個服務(wù)器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也一樣干活,只是交換修改不方便而已。
3、Git在項(xiàng)目協(xié)作開發(fā)中所解決的問題
- 多人協(xié)作,出現(xiàn)代碼沖突 (版本控制工具)
- 多人協(xié)作,在代碼整合期間引發(fā)BUG(回滾)
- 多人協(xié)作,領(lǐng)導(dǎo)要看項(xiàng)目 (版本歷史)
- 多人協(xié)作,用戶身份的控制(權(quán)限管理)
- 項(xiàng)目版本的發(fā)布問題 (標(biāo)志&里程碑管理)
參考: http://www.dbjr.com.cn/article/245619.htm
以上就是Git在項(xiàng)目協(xié)作開發(fā)中所解決問題的詳細(xì)內(nèi)容,更多關(guān)于Git項(xiàng)目協(xié)作開發(fā)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
基于Token的身份驗(yàn)證之JWT基礎(chǔ)教程
JWT(json web token)是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)。下面這篇文章主要給大家介紹了關(guān)于基于Token的身份驗(yàn)證之JWT的基礎(chǔ)相關(guān)資料,文中通過示例代碼的非常詳細(xì),需要的朋友可以參考下2018-09-09字符編碼詳解及由來(UNICODE,UTF-8,GBK) 比較詳細(xì)
很久很久以前,有一群人,他們決定用8個可以開合的晶體管來組合成不同的狀態(tài),以表示世界上的萬物。他們看到8個開關(guān)狀態(tài)是好的,于是他們把這稱為字節(jié)2012-04-04一個30多年編程經(jīng)驗(yàn)的程序員總結(jié)
這篇文章主要介紹了一個30多年編程經(jīng)驗(yàn)的程序員總結(jié),在我30多年的程序員生涯里,我學(xué)到了不少有用的東西,下面是我這些年積累的經(jīng)驗(yàn)精華,需要的朋友可以參考下2014-09-09卷積神經(jīng)網(wǎng)絡(luò)Inception?V3網(wǎng)絡(luò)結(jié)構(gòu)圖
這篇文章主要為大家介紹了卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)圖Inception?V3的結(jié)構(gòu)圖層詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05