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

修改Git历史提交作者后出现重复提交,如何清理或恢复?

解决Git历史提交重复及恢复问题

方案一:清理重复提交(保留关联GitHub账号的正确提交)

你已经通过rebase修改了所有历史提交的作者信息,远程仓库目前同时存在旧提交和新提交,只需强制推送本地修改后的分支覆盖远程即可:

  • 先确认本地当前分支无未提交改动:
    git status
    
  • 执行强制推送(推荐用--force-with-lease,比--force更安全,避免意外覆盖他人改动;你的仓库仅自己使用也可直接用--force):
    git push --force-with-lease
    

推送完成后,GitHub上的旧提交会被替换为修改后的新提交,重复记录将消失。

方案二:恢复到提交未关联账号的原始状态

如果想撤销所有作者修改操作,回到最初的提交状态:

  • 查看Git操作日志,找到rebase操作之前的分支版本哈希:
    git reflog
    
    在输出中定位到rebase操作条目之前的记录,对应的一串哈希值(比如a1b2c3d)就是你rebase前的分支状态。
  • 重置本地分支到该历史版本:
    git reset --hard <找到的哈希值>
    
  • 强制推送到远程仓库,覆盖当前修改:
    git push --force-with-lease
    

完成后远程仓库将恢复到修改作者前的状态。

注意:强制推送会改写远程仓库的历史记录,务必确认仓库仅你一人使用,不会影响其他协作者的工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:05:18