You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git:如何将修改追加至非最新提交及撤销错误的--amend操作

解决Git错误--amend后的恢复与正确追加修改

一、撤销错误的--amend操作

git commit --amend本质是生成一个新提交替换当前HEAD指向的提交(也就是你误操作时的version 2),但原version 2提交并未被删除,可通过操作日志找回:

  1. 查看本地提交操作日志,定位原version 2的提交哈希:
git reflog

日志里会显示类似如下记录,找到对应version 2的条目,最左侧的字符串就是目标哈希:

abc123 HEAD@{0}: commit (amend): version 1
def456 HEAD@{1}: commit: version 2
  1. 将分支重置到原version 2提交,恢复修改前的历史:
git reset --hard def456

执行后,分支会回到最初的状态:version 2在上、version 1在下,你之前的新修改会回到工作区/暂存区。

二、将新修改正确追加到原version 1提交

要把新修改合并到更早的version 1提交中,使用交互式rebase即可:

  1. 先将新修改暂存(如果还在工作区,执行git add .)。

  2. 启动交互式rebase,目标指向version 1的父提交:
    假设原version 1的哈希是ghi789,执行:

git rebase -i ghi789^

如果确定version 1是倒数第二个提交,也可以简化为:

git rebase -i HEAD~2
  1. 在弹出的编辑器中,找到version 1对应的行,将开头的pick改为edit,保存并退出。

  2. 此时Git会停在version 1的提交状态,执行命令将新修改追加进去:

git commit --amend

确认提交信息保持version 1后,保存退出。

  1. 继续完成rebase流程:
git rebase --continue

最终你的提交历史会恢复为version 2在上,包含新修改的version 1在下的正确状态。

内容的提问来源于stack exchange,提问作者Rohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:45:57