簡(jiǎn)介
git 使用的過程中,有時(shí)候我們可能會(huì)有這樣的需求, 別的分支上有部分文件是我們當(dāng)前分支需要的,但是如果使用常規(guī)的merge,就會(huì)將別的分支的內(nèi)容全部合并過來,這不是我們想要的,下面簡(jiǎn)單介紹一個(gè)小技巧可以實(shí)現(xiàn)只合并指定的文件。
場(chǎng)景一
目前有master 和 develop 兩個(gè)分支,develop上開發(fā)了三個(gè)功能,分別是 function1.js , function2.js , function3.js 實(shí)現(xiàn)的, master上是沒有這些功能的,也就沒有這三個(gè)文件,由于某些原因,現(xiàn)在需要將 function1.js 這個(gè)功能先上線,于是我們需要將 function1.js merge到 master 上,但是 function2.js 和 function3.js 不能一起 merge 過來。
實(shí)現(xiàn)
git checkout source_branch <path>...
我們先切換到 master 分支上,也就是要將資源合并過來的分支,然后執(zhí)行?git checkout develop function1.js
,此時(shí)我們會(huì)發(fā)現(xiàn) master 上已經(jīng)有了 funciton1.js 了,也就將指定文件合并過來了。
具體步驟:文章來源:http://www.zghlxwxcb.cn/news/detail-726974.html
git checkout master // 先切換到master分支
git checkout develop function1.js // 合并develop上的function1.js
但是有一點(diǎn)要注意,如果當(dāng)前 master 上已經(jīng)有了 function1.js 文件,并且開發(fā)了一些其他功能,當(dāng)用以上方法把 develop 上的 function1.js 合并過來的時(shí)候,master 上原有的同名文件會(huì)被完全覆蓋,而不是合并,這肯定是不行的,也就是以下場(chǎng)景。
場(chǎng)景二
master 和 develop 上針對(duì) function1 功能開發(fā)了不同的模塊,develop 上獨(dú)立開發(fā)了 function2 和 function3 功能,現(xiàn)在需要先上掉 function1 和 function2,也就將兩個(gè)分支上的 function1.js 合并,并且將 develop 上的 function2.js 合并到 master 上。
實(shí)現(xiàn)
從 master 上切出一個(gè)臨時(shí)分支,將 develop merge 到臨時(shí)分支,然后切換到 master 上,用上面的?git checkout source_branch <path>
?方法將臨時(shí)分支上的相關(guān)文件合并到 master 上。
具體步驟:
git checkout master // 先切換到master分支
git checkout -b master_temp // 從master切一個(gè)新的分支
git merge develop // 在 master_temp 上 merge develop 分支, 如果有沖突,解決下沖突,然后 commit 掉
git checkout master // 切回master
git checkout master_temp function1.js function2.js // 合并臨時(shí)分支上的 function1.js, function2.js
完成~ 在正常開發(fā)中,這樣的場(chǎng)景可能并不多見,都是做好準(zhǔn)備并且根據(jù)規(guī)范來開發(fā)的,既然可能會(huì)有這樣的場(chǎng)景,還是先記著這個(gè)小技巧。文章來源地址http://www.zghlxwxcb.cn/news/detail-726974.html
到了這里,關(guān)于git從其他分支merge個(gè)別文件,部分合并文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!