如何在GitHub上删除提交?

2023

我“无意中”将一个提交推送到了GitHub上。

有没有可能删除这个提交?

我想要将我的GitHub仓库还原为在这个提交之前的状态。


224
警告:如果你有很多人关注你的代码仓库,千万不要这样做,否则会导致他们本地的代码仓库与最新版本不同步。如果这是一个错误,你可以再提交一次撤销错误。如果这涉及密码,你可能需要更改密码,而不要着急删除它。强制性操作并非没有缺点。 - Tamara Wijsman
177
注意事项2:通过SHA1,提交仍然可以直接访问。强制推送并不会删除提交,它只是创建一个新的提交并将文件指针移动到该提交。要真正删除提交,您必须删除整个存储库。 - Gustav
31
“...你必须删除整个代码库。” - 或者只需强制进行垃圾回收即可。 - IQAndreas
6
关于WOC1,下一次关注者拉取时,他们将自动获取新的历史记录并失去旧的记录,这似乎是相当可接受的行为。问题是,如果其他人在您提交之后进行了新的工作:那么您会给他们带来很大的麻烦(他们需要将更改挑选到新的历史记录上)。因此,在* 1分钟 之后进行强制推送比在 1周 之后更容易被接受(暴露给较少的关注者),对于人们仅使用而不修改*的项目也更容易被接受(他们不会注意到时间轴已更改)。 - joeytwiddle
11
这是一个关于在Bitbucket上删除最后一次提交的问题。 - naught101
显示剩余9条评论
21个回答

-1

添加/删除文件以使其符合您的要求:

git rm classdir
git add sourcedir

然后修改提交:

git commit --amend

之前的错误提交将被编辑以反映新的索引状态 - 换句话说,就像你一开始没有犯过错误一样。

请注意,只有在您尚未推送时才应执行此操作。如果您已经推送了,那么您只能正常提交修复。


这将创建一个额外的版本,其中没有更改。 - Деян Добромиров

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