commit 合並
在開發過程中,可能會出現多個 commit 所涉及的邏輯都是同一個功能模塊,此時,會導致 log tree 非常的混亂,不美觀,因此,我們可以將多個 commit 進行合並,變成一條,這樣,也使得 log tree 會更加的簡潔。
首先,先確定的是,我們合並 commit 使用的是 rebase 命令。
command line
首先,找到要操作的 commit 的 前一條的 sha1,然后執行
git rebase -i sha1
執行完后,會出現指定 commit 后所有的 commit,然后根據需要將對應的 commit 的操作改為需要的即可。
在這里,我們分別描述一下這些操作哪些是有用的,以及該如何選擇。
- pick:保留;
- reword:保留,但是要修改 commit log;
- edit:保留,但是會暫停 rebase 操作,讓你修改內容,不止是log;
- squash:保留,但是會將該 commit 和上一條進行合並,且 commit log 也一起合並了;
- fixup:保留,但是會將該 commit 和上一條進行合並,但是只保留上一個 commit log;
- exec:執行 shell 命令;
- drop:移除該 commit。
一般,我們在使用過程中,使用 pick 和 squash 即可。
idea
這里,假設,我們要把1和2進行合並。
首先,我們復制最后一個 commit 的序列號。
然后點擊 vsc - git - rebase
將復制的sha1號復制到下圖所示位置中,即可開啟 rebase 的合並圖形界面。
將需要的 commit 操作改為pick,需要和其上面分支合並到改成 squash 即可。
最后,點擊 rebase 后,會讓我們輸入 commit log,根據世界輸入即可。
在全部合並結束后,需要使用 git push -f
進行強制提交即可。
文章在公眾號「iceWang」第一手更新,有興趣的朋友可以關注公眾號,第一時間看到筆者分享的各項知識點,謝謝!筆芯!