GitHub回溯到上一个推送

时间:2019-02-14 02:02:04

标签: github

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

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

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

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

1 个答案:

答案 0 :(得分:1)

假设您的分支(具有错误的提交)已经发布到GitHub,并且其他用户可能已经推送了它,那么您通常从字面上回滚该分支。相反,您可以使用git revert从功能上撤消错误的提交:

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

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

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

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

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