轉(zhuǎn)帖|行業(yè)資訊|編輯:王香|2017-02-28 11:14:15.000|閱讀 288 次
概述:git是當(dāng)今流行的版本控制工具,一般我們可能只要會(huì)push, pull就可以了,但是當(dāng)我們同別人共同工作的時(shí)候,我們必須要了解git協(xié)同開(kāi)發(fā)的一些重要流程.
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
前言
git作為當(dāng)今最流行的版本控制工具之一,當(dāng)時(shí)開(kāi)發(fā)出來(lái)就是為了管理Linux龐大源代碼的分布式版本控制工具。由于Linux源代碼過(guò)于巨大,僅靠一個(gè)人的力量是完成不了的,那就必須把工作分配下去,然后將代碼合并,所以git一開(kāi)始設(shè)計(jì)的時(shí)候就是一種分布式的、多分支的。
概念
所以git最重要的就是分支這個(gè)性質(zhì),分支是什么呢。
要了解分支必須要了解git工作原理。
git工作原理很簡(jiǎn)單就是add、commit,add、commit….,簡(jiǎn)單來(lái)說(shuō)就是添加記錄,添加記錄,保存快照,添加記錄,添加記錄,保存快照。
圖片來(lái)源網(wǎng)絡(luò)
如上圖,隨著master分支快照的一個(gè)一個(gè)建立,軟件就慢慢的迭代下去了。
分支工作流程
接下來(lái)我們要著重講一下分支,我們看到master分支的v0.1版本,我們已經(jīng)開(kāi)發(fā)出穩(wěn)定的v0.1版,這時(shí)候我們決定開(kāi)發(fā)一個(gè)新功能。
在這里我們分了一個(gè)Develop分支,我們?cè)贒evelop分支開(kāi)發(fā)新代碼。
這時(shí)候我們發(fā)現(xiàn)v0,1的一個(gè)bug,假如是沒(méi)有使用版本控制的話(huà),一般人會(huì)停下手中的活,然后從當(dāng)前的新代碼處來(lái)修復(fù)這個(gè)bug,當(dāng)這個(gè)bug很簡(jiǎn)單的時(shí)候,我們不會(huì)遇到很大困難,但是當(dāng)bug藏的很深,而且新代碼隱藏了這個(gè)bug,或者被這個(gè)bug影響,這時(shí)修復(fù)工作就變得很困難。
還好我們有g(shù)it,我們從v0.1直接分一個(gè)Hotfix分支,這兩個(gè)分支的父都是v0.1,我們直接從穩(wěn)定版本修復(fù),不牽涉到新代碼,這樣修改好后我們就能很快從Develop分支繼續(xù)工作了。
而且這樣有一個(gè)好處我們將master和Develop分支合并的時(shí)候很大可能不會(huì)產(chǎn)生沖突。
沖突(coflic)是什么了,怎么能避免呢?
從兩個(gè)分支的父親v0.1看起,我們每次改動(dòng)一個(gè)保存文件就會(huì)產(chǎn)生一個(gè)modify(修改)的動(dòng)作,我們假如分支里面都對(duì)同一個(gè)文件產(chǎn)生了modify(修改)動(dòng)作,當(dāng)我們合并的時(shí)候這就是一個(gè)沖突,git無(wú)法理解采用哪個(gè)分支的modify動(dòng)作,這時(shí)候就要你人工來(lái)修改采用哪個(gè)分支。
假如沒(méi)有相同的文件有modify(修改)動(dòng)作,git就會(huì)聰明的知道采用每個(gè)分支的最新的modify(修改)修改出一份所以文件的最新版。
那我們?cè)趺磥?lái)避免這個(gè)沖突呢,這就要求我們分支要分的合理,分支只要完成特定的工作,不要越俎代庖,那有些人會(huì)說(shuō)我這個(gè)分支一定要改父的耦合地方否則我的代碼工作不了,這時(shí)我們要好好思考自己的分支的功能,把合并耦合的代碼放在主分支里面,次分支只要完成特定功能就可以了,這樣合并分支時(shí)候不但可以安全的merge(合并)了, 而且修改bug的時(shí)候也可以對(duì)癥下藥,直接在問(wèn)題開(kāi)始的地方修改。
更多相關(guān)內(nèi)容請(qǐng)點(diǎn)擊查看原文
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn