首页 > 解决方案 > GitHub 回溯到上一次推送

问题描述

我意识到这不是一个直接的编码问题,但 GitHub 被广泛使用,我还没有看到如何做到这一点,所以我想我会问,因为我试图弄清楚。

使用 GitHub 如何将开发分支回溯到之前的推送点?

例如,假设我有一个 dev 分支并且我推送了错误的代码,如果需要,我如何回溯到该分支中的前一个点?

我更愿意从命令行查看如何执行此操作,但在 Web UI 中也可以。

标签: github

解决方案


假设您的带有错误提交的分支已经发布到 GitHub,并且其他用户可能已经推送了它,那么您通常不会真正回滚该分支。相反,您将使用git revert功能上撤消错误提交:

git revert 1a7h3jxk       # where 1a7h3jxk is the SHA-1 hash of the bad commit

git revert实际上添加了一个的提交,它在功能上撤消了您指定为参数的提交。它还允许指定提交范围的语法。

如果您真的想正式“回溯”您的分支,您可以进行硬重置以删除错误的提交。例如,要实际删除单个错误提交,您可以执行以下操作:

git reset --hard HEAD~1
git push --force origin your_branch

但请注意,进行硬重置意味着您正在重写分支的历史记录。这意味着您必须强制推送(读取:覆盖)远程分支的版本。如上所述,如果除您之外还有其他人共享此分支,则不应使用此选项。


推荐阅读