Git-使用Rebase合併分支

commit 合併

在開發過程中,可能會出現多個 commit 所涉及的邏輯都是同一個功能模塊,此時,會導致 log tree 非常的混亂,不美觀,因此,我們可以將多個 commit 進行合併,變成一條,這樣,也使得 log tree 會更加的簡潔。

首先,先確定的是,我們合併 commit 使用的是 rebase 命令。

command line

首先,找到要操作的 commit 的 前一條的 sha1,然後執行

git rebase -i sha1

執行完後,會出現指定 commit 後所有的 commit,然後根據需要將對應的 commit 的操作改為需要的即可。

image.png
在這裡,我們分別描述一下這些操作哪些是有用的,以及該如何選擇。

  • pick:保留;
  • reword:保留,但是要修改 commit log;
  • edit:保留,但是會暫停 rebase 操作,讓你修改內容,不止是log;
  • squash:保留,但是會將該 commit 和上一條進行合併,且 commit log 也一起合併了;
  • fixup:保留,但是會將該 commit 和上一條進行合併,但是只保留上一個 commit log;
  • exec:執行 shell 命令;
  • drop:移除該 commit。

一般,我們在使用過程中,使用 pick 和 squash 即可。

idea

image.png
這裡,假設,我們要把1和2進行合併。

首先,我們複製最後一個 commit 的序列號。

然後點擊 vsc – git – rebase
image.png

將複製的sha1號複製到下圖所示位置中,即可開啟 rebase 的合併圖形界面。
image.png

將需要的 commit 操作改為pick,需要和其上面分支合併到改成 squash 即可。
image.png

最後,點擊 rebase 後,會讓我們輸入 commit log,根據世界輸入即可。

在全部合併結束後,需要使用 git push -f 進行強制提交即可。


文章在公眾號「iceWang」第一手更新,有興趣的朋友可以關注公眾號,第一時間看到筆者分享的各項知識點,謝謝!筆芯!

Tags: