【问题标题】:How to undo the last commit on GitHub?如何撤消 GitHub 上的最后一次提交?
【发布时间】:2021-12-26 07:54:33
【问题描述】:
我想撤消在存储库的主分支上推送到 GitHub 的最后一次提交,并使其看起来好像该提交从未存在并且不会出现在提交历史记录中。
我该怎么做?
请注意那些投票结束的人 - 提议的替代问题不必要地复杂,具有居高临下的答案,并且散落着难以筛选的巨大文字墙。
因此,为了我和后代的利益,这个简单的问题有一个简单的答案。
【问题讨论】:
标签:
github
commit
undo
git-revert
【解决方案1】:
如果您希望将存储库的主分支回退到先前推送的提交,只需运行此命令 - 当然,使用适当的提交哈希:
git reset --hard a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9
git push --force
这可能会产生意想不到的后果,例如,如果您的存储库中有协作者。但是,我相信你知道你在做什么?
【解决方案2】:
我认为您正在寻找 --force 参数。
您可以使用git reset --hard {commit sha} 重置为特定提交,然后使用git push --force 强制更改为原点。
请注意,如果其他人正在使用您的 repo,他们将需要使用 git pull --force 否则他们可能会无意中将您不需要的提交放回 repo。
我建议在采取行动之前阅读git reset 和git push 的帮助文档。