怎么把当前修改追加到前面某个commit中
bash
git log
commit b7cb11b53388d410d07e3b3084c67274cee4cdad (HEAD -> hotfix/task-108344, origin_dbackup/hotfix/task-108344)
Author: aaa <[email protected]>
Date: Thu Mar 27 15:08:32 2025 +0800
Fix #108344: add bbb
commit 13e6302252fc475d28431bb351155e3c2e3fde6d
Author: bbb <[email protected]>
Date: Wed Mar 26 17:41:48 2025 +0800
Fix #108344: add aaa
此时,我怎么把对代码的修改追加到Fix #108344: add bbb提交上,而不影响另一个提交
- 运行交互式 rebase
首先,你需要运行交互式 rebase,选择一个包含你需要修改的提交范围的 commit(这里是 13e6302)
bash
git rebase -i HEAD~2
这个命令会列出你最近的两个提交,类似这样:
bash
pick 13e6302 Fix #108344: add aaa
pick b7cb11b Fix #108344: add bbb
- 修改提交
在这个列表中,你可以看到最近的两个提交
你需要将 13e6302 那一行的 pick 改为 edit,让 Git 在这个提交时暂停,以便你可以修改内容
修改后,文件内容应该像这样:
bash
edit 13e6302 Fix #108344: add aaa
pick b7cb11b Fix #108344: add bbb
保存并退出编辑器
- 修改代码
Git 会暂停在 13e6302 提交,允许你修改代码
此时,你可以修改你的代码并进行添加:
bash
# 修改代码
git add <modified-files>
- 更新提交
修改完成后,运行以下命令来更新提交:
bash
git commit --amend --no-edit
--no-edit 选项会保持原来的提交信息不变,只更新提交的内容
- 继续 rebase
提交修改完成后,运行以下命令来继续 rebase:
bash
git rebase --continue
- 完成
完成 rebase 后,检查提交历史:
bash
git log
你会看到 13e6302 提交已经被更新,而 b7cb11b 提交保持不变