搜尋

首頁  >  問答  >  主體

Git 怎麼用 rebase 合併幾個 commit

據說 Git 可以透過 rebase 合併幾次提交,最終在歷史記錄中只留下合併後的那一個。

因為我在改一個 bug 的時候中途提交了幾次,但最後需要把中間幾次提交都取消掉,直接合併最後一次提交上去,比如

aaaaaa 修改前小小的重构
bbbbbb 修改拼写错误
cccccc 重算 a 过程
dddddd 重算 b 过程
eeeeee fix #2382

我想最終在歷史記錄只有

abcdef fix #2382,重算了 a、b 过程

應該怎麼做?
我平常用 SmartGit,不過用命令列解決也行

世界只因有你世界只因有你2763 天前612

全部回覆(1)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-05-02 09:24:52

    git rebase -i <eeeee的前一次提交>
    把不需要的 commit 前面設為 s 保存退出後編輯新的log,比較複雜

    還有一種方法,但是要求 aaaaa 是當前最新的提交
    git reset --soft <eeeee的前一次提交>然后重新 git commit

    反正吧,這兩種方式都是比較危險的操作,建議新手先找個心臟項目試試

    回覆
    0
  • 取消回覆