據說 Git 可以透過 rebase 合併幾次提交,最終在歷史記錄中只留下合併後的那一個。
因為我在改一個 bug 的時候中途提交了幾次,但最後需要把中間幾次提交都取消掉,直接合併最後一次提交上去,比如
aaaaaa 修改前小小的重构
bbbbbb 修改拼写错误
cccccc 重算 a 过程
dddddd 重算 b 过程
eeeeee fix #2382
我想最終在歷史記錄只有
abcdef fix #2382,重算了 a、b 过程
應該怎麼做?
我平常用 SmartGit,不過用命令列解決也行
git rebase -i <eeeee的前一次提交>
把不需要的 commit 前面設為 s 保存退出後編輯新的log,比較複雜
還有一種方法,但是要求 aaaaa 是當前最新的提交
git reset --soft <eeeee的前一次提交>
然后重新git commit
反正吧,這兩種方式都是比較危險的操作,建議新手先找個心臟項目試試