从Github中删除一个提交

16

可能重复:
如何在 GitHub 上删除提交记录?
如何删除 Git 提交记录?

我想从 GitHub 上删除一个提交记录。

这个提交记录是三次提交之前的,如果所有更改都丢失了,我也没有关系。

所以根据这里的问题,我进行了操作:

git reset --hard <sha-commit-name-to-go-back-to>
git push -f origin HEAD^:master

现在它已经从GitHub和git日志中消失了。

然后我重新做了我的更改并执行了

git add <file I changed>
git commit
git log

一切看起来都很好。旧的提交已经没有了踪迹。最终我执行了:

git push

现在突然间 Github 又显示了我已经删除的三个提交记录。

我做错了什么?如何防止这些提交记录再次出现?

1个回答

14

在应用新更改之前,请使用git rebase流程。重新设置分支后,添加新的更改并提交。

git rebase -i HEAD~2

git push origin +master

谢谢!这似乎起作用了。然而,在.git目录中挖掘时,我发现了一堆带有对我想要删除的提交的引用的日志文件。在执行git push origin +master之前,我还编辑了这些文件以删除引用。 - Jistanidiot
2
@Jistanidiot,很可能你在搞git reflog的存储。实际上这不是一个明智的想法,因为git reflog有自己的方法来操作它的存储,而你的更改可能会破坏某些东西。 - kostix
2
谢谢!我首先执行了 git reset --hard <commit_number>,然后使用了您的命令,它完美地运行了! - Kenny Cason
我执行了 git reset --hard <sha-commit-name-to-go-back-to>git push -f origin HEAD^:mastergit rebase -i HEAD~2,然后 nano 编辑器打开文件:File: /var/www/html/site-name/.git/rebase-merge/git-rebase-todo,其中有 pickrewordedit 等选项。我不知道该怎么办... - user1063287

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接