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

GitHub提交记录重复如何删除?Git新手求详细操作方案

解决提交重复问题的详细步骤

1. 先备份仓库(必做!)

复制整个本地仓库文件夹到电脑其他位置,防止操作失误丢失数据。

2. 打开终端进入仓库目录

找到你的本地仓库文件夹,右键打开终端(Windows用Git Bash,Mac/Linux用系统终端),确保当前路径是仓库根目录。

3. 找到修改日期后的最后提交哈希

执行以下命令查看提交历史和分支图:

git log --oneline --graph

你会看到类似这样的分支结构:

* 1234567 (HEAD -> main) Merge remote-tracking branch 'origin/main'
| * abcdefg 修改后的提交X
| * hijklmn 修改后的提交Y
* | 890abcd 远程原来的提交X
* | wxyzefg 远程原来的提交Y

这里abcdefg和hijklmn是你修改日期后的提交,找到这条线的最后一个提交哈希(比如上面的abcdefg)。

如果找不到,也可以查看操作日志定位:

git reflog

找带有filter-branch: rewrite的记录,对应的哈希就是你修改后的最后提交。

4. 重置本地分支到修改后的提交

把找到的哈希替换下面命令中的[你的修改后提交哈希],执行:

git reset --hard [你的修改后提交哈希]

这个命令会把本地main分支强制恢复到你修改日期后的状态,丢弃掉pull进来的重复提交。

5. 强制覆盖远程仓库的重复提交

执行强制推送命令,把本地正确的历史推送到远程:

git push origin main --force

执行后远程的提交就会和你修改后的一致,重复提交会被删除,贡献图也会恢复正常。


问题原因说明

你用git filter-branch修改提交日期后,Git会重新生成所有被修改提交的哈希值,导致本地历史和远程仓库的历史变成两个完全无关的分支。此时用--allow-unrelated-histories执行git pull,Git会把这两个无关分支合并,最终出现提交重复的情况。

内容的提问来源于stack exchange,提问作者이민영

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:40:25