git - 我做了一个 git Reset HARD 来修复错误的提交,但现在我的分支落后了

标签 git github

我们有人提交了一些仅部分 merge 的文件。简而言之,任何 pull 的人都会得到一个损坏的项目。

我们通过执行 git --reset HARD 解决了这个问题。伟大的!现在的问题是我们落后了 2 个提交。但我们不想要这两次提交。我们想假装 xxyy 之后的一切都没有发生过。

这里最好的选择是什么?

最佳答案

您已经解决了该问题,至少在本地是这样。但错误的提交仍然存在于远程。您基本上有两个选择:

  1. 您可以使用 git revert 恢复远程上的两个提交:

    git revert <SHA-1 of commit #1>
    git revert <SHA-1 of commit #2>
    

    此选项基本上会在远程分支上添加两个提交,这将有效地撤消原始提交所做的任何操作。

  2. 您可以对分支进行交互式 rebase 并删除两个提交:

    git rebase -i
    

    在此选项中,您将完全删除两个错误的提交。但请注意,这也会重写远程分支的历史记录,这可能会迫使您组中的某些人(包括您自己)删除分支的本地副本并从远程 check out 全新版本。

执行git revert可能是最安全的选择,因为它不会伤害任何拥有相关分支本地副本的其他人。

关于git - 我做了一个 git Reset HARD 来修复错误的提交,但现在我的分支落后了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36395833/

相关文章:

git - 有没有办法撤消分离的 HEAD 状态,而不撤消我在分离的 HEAD 状态下所做的工作?

git - 如何让 sbt 从 git repo 编译插件,使用 https 检查它?

github - GitHub 发布模板

github - 关于 GitHub 操作/GitHub 拉取请求的 HTML 报告

git - 清理 git 历史

windows - Git 配置值冲突

Git:修复 merge 冲突时获取 $REMOTE、$BASE 和 $LOCAL 文件

git - 从git分支派生maven Artifact 版本

git - 对于每个 github 提交,我都会看到一个 github 克隆

swift - 我该如何正确使用这个Github项目呢?