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

如何修复Git因commit amend产生的平行提交,还原单一提交历史

修复提交历史为单一提交的步骤

第一步:定位目标提交哈希

先运行命令查看简洁版提交日志,找到你最初提交5个文件的那个记录(也就是冗余合并出现之前的提交):

git log --oneline

日志会显示类似示例的内容:

a1b2c3 Merge branch 'main' from github.com/xxx/xxx
d4e5f6 修复文件后的修订提交
g7h8i9 最初提交5个文件的版本

记下g7h8i9这类合并提交之前的哈希值。

第二步:重置并重新修订提交

执行软重置,回到原始提交状态,同时保留你对文件的清理改动:

git reset --soft g7h8i9

接着重新把修改合并到原始提交里:

git commit --amend -m "你的原始提交信息(可修改或保留原内容)"

此时本地提交历史已变成单一的修订后提交,无冗余合并记录。

第三步:强制推送覆盖远程

因为改写了远程已存在的提交历史,必须用强制推送覆盖远程分支:

git push -f origin main

如果你的分支不是main,替换成对应的分支名即可。

界面操作替代方案(PHPStorm)

  1. 在Git工具窗口的Log标签里找到原始提交(合并前的记录)
  2. 右键该提交,选择Reset Current Branch to Here,在弹窗里选Soft模式
  3. 回到Local Changes,点击Commit按钮,勾选Amend commit选项,完成提交
  4. 推送时在弹窗里勾选Force push选项确认推送

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 16:28:14