撤销已推送到远程仓库的最后一个 Git 提交

9

我把错误的文件提交到了我的分支,并将其推送到了源。我在这篇文章如何在Git中撤销上一次提交?中看到了撤销本地提交的方法,但我的问题是我已经将提交推送到了源。怎么办?

3个回答

14
git reset HEAD^
git push origin +HEAD

应该适用于您。有关更多信息,请参阅git-pushgit-reset文档。


9

既然您已经推送到了origin,您的更改已经发布供他人查看和拉取。由于此原因,您可能不想重写历史记录。因此,最好使用git revert命令。

这会创建一个新的提交来撤销您所做的更改。将新的提交推送上去,就可以修复origin。

这里有一个SO答案提供了更多详细信息。


我们可以直接从源中删除整个分支吗?(这是一个全新的分支,我不想将其推送到源中)。 - Kid

0
假设这是你自己的特性分支,你可以按照以下步骤操作:
1. 在本地撤销你的更改。 2. 进行所需的更改并进行新的提交。 3. 使用强制标志进行推送。这将覆盖历史记录,但这是你自己的特性分支!
git reset --soft head~1
git commit -m "Ammending previos commit"
git push -f

希望这对野外的某人有所帮助 :)

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