Git:git-merge的--ff和--no-ff
博客
Git用法總結(jié)系列收藏于IT老兵驛站。
Git:Git-merge的–ff和–no-ff。
前言
Git merge最容易糊涂的地方就是這個(gè)--ff參數(shù)和--no-ff 參數(shù),通過(guò)本文,把這個(gè)整理清楚。
其實(shí)官網(wǎng)講的非常清楚,不過(guò)可能因?yàn)槭怯⑽牡?#xff0c;所以大家閱讀起來(lái)會(huì)有一些障礙。(PS:其實(shí)還是應(yīng)該逐步逐步提高自己閱讀英文文檔的能力,想達(dá)到一個(gè)更高的高度,是需要客服自己本身很多的弱點(diǎn)的)
實(shí)例
假設(shè)合并前的分支是這樣,這個(gè)一個(gè)非常常見的場(chǎng)景,如果不明白,可以參考另外一篇文章Git Flow工作流:
這是一個(gè)很常見的用例,功能開發(fā)分支是iss53,在開發(fā)新功能,master分支是線上分支,出現(xiàn)了問(wèn)題,開辟了hotfix分支進(jìn)行修復(fù),修復(fù)完成,進(jìn)行合并,需要把hotfix合并回master。
步驟如下:
然后看到了Fast-forward 的字樣,這個(gè)詞組的意思就是快進(jìn),播放電影的時(shí)候,可以注意一下,快進(jìn)按鈕上面就是這個(gè)詞組。
那么實(shí)際變成了什么樣呢?
僅僅是master指針指向了這個(gè)提交C4。這樣是一種比較快的合并方式,輕量級(jí),簡(jiǎn)單。
這個(gè)時(shí)候,我們往往會(huì)刪掉hotfix分支,因?yàn)樗臍v史作用已經(jīng)結(jié)束,這個(gè)時(shí)候,我們的iss53這個(gè)功能又向前開發(fā),進(jìn)行了一次提交,到了C5,那么變成了這樣:
然后,我們要把iss53 這個(gè)分支合并回master,就變成了這樣:
這個(gè)時(shí)候生成了一個(gè)新的commit號(hào),這種提交就不是fast-forward(這個(gè)時(shí)候也無(wú)法生成fast-forward提交,因?yàn)橐獙蓚€(gè)版本的內(nèi)容進(jìn)行合并,只有在沒(méi)有需要合并內(nèi)容的時(shí)候,會(huì)有這個(gè)fast-forward 方式的提交)。
如果我們對(duì)第一次合并,使用了--no-ff參數(shù),那么也會(huì)產(chǎn)生這樣的結(jié)果,生成一個(gè)新的提交,實(shí)際上等于是對(duì)C4 進(jìn)行一次復(fù)制,創(chuàng)建一個(gè)新的commit,這就是--no-ff的作用。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-qnebRQrm-1616768484042)(https://i.stack.imgur.com/FMD5h.png)]
參考:https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging,這里講了原理。
參考:https://git-scm.com/docs/git-merge,這里是參考。
總結(jié)
以上是生活随笔為你收集整理的Git:git-merge的--ff和--no-ff的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手机邮件打开一个html会中木马,小心,
- 下一篇: 外贸人应该灵活运用的“套路”