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」第一手更新,有興趣的朋友可以關注公眾號,第一時間看到筆者分享的各項知識點,謝謝!筆芯!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM