Git 應用: 只取一個commit
2021-06-03
在 local 的堆疊的 commit
有一個經常發生的情況:我在追蹤一個有點棘手的 bug,但是它實在太難抓出來了,在不得已的情況下我加入了一些 debug 的指令,並且做了一些 commit。
所有的這些 debug 的指令都只在 bugFix 這個 branch 裡面。最後我終於找到這個 bug,並且 fix 掉它,接著撒花慶祝一下!
現在唯一的問題就是要把我在 bugFix branch 裡面所做的修改 merge 回 main branch。我可以簡單地透過 fast-forward 來 merge ,但這樣的話 main branch 就會包含這些含有 debug 指令的 commit 了。我相信一定有其它方法...
我們需要告訴 git 只去複製其中一個 commit。
我們可以使用一樣的指令:
- git rebase -i
- git cherry-pick
例如輸入以下指令:
git checkout main //head回到main
git cherry-pick bugFix //讓bugFix整合進main