Git:git-merge的--ff和--no-ff
生活随笔
收集整理的這篇文章主要介紹了
Git:git-merge的--ff和--no-ff
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
博客
Git用法總結系列收藏于IT老兵驛站。
Git:Git-merge的–ff和–no-ff。
前言
Git merge最容易糊涂的地方就是這個--ff參數和--no-ff 參數,通過本文,把這個整理清楚。
其實官網講的非常清楚,不過可能因為是英文的,所以大家閱讀起來會有一些障礙。(PS:其實還是應該逐步逐步提高自己閱讀英文文檔的能力,想達到一個更高的高度,是需要客服自己本身很多的弱點的)
實例
假設合并前的分支是這樣,這個一個非常常見的場景,如果不明白,可以參考另外一篇文章Git Flow工作流:
這是一個很常見的用例,功能開發分支是iss53,在開發新功能,master分支是線上分支,出現了問題,開辟了hotfix分支進行修復,修復完成,進行合并,需要把hotfix合并回master。
步驟如下:
然后看到了Fast-forward 的字樣,這個詞組的意思就是快進,播放電影的時候,可以注意一下,快進按鈕上面就是這個詞組。
那么實際變成了什么樣呢?
僅僅是master指針指向了這個提交C4。這樣是一種比較快的合并方式,輕量級,簡單。
這個時候,我們往往會刪掉hotfix分支,因為它的歷史作用已經結束,這個時候,我們的iss53這個功能又向前開發,進行了一次提交,到了C5,那么變成了這樣:
然后,我們要把iss53 這個分支合并回master,就變成了這樣:
這個時候生成了一個新的commit號,這種提交就不是fast-forward(這個時候也無法生成fast-forward提交,因為要將兩個版本的內容進行合并,只有在沒有需要合并內容的時候,會有這個fast-forward 方式的提交)。
如果我們對第一次合并,使用了--no-ff參數,那么也會產生這樣的結果,生成一個新的提交,實際上等于是對C4 進行一次復制,創建一個新的commit,這就是--no-ff的作用。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(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,這里是參考。
總結
以上是生活随笔為你收集整理的Git:git-merge的--ff和--no-ff的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机邮件打开一个html会中木马,小心,
- 下一篇: phpstudy环境下安装部署moodl