【问题标题】:Git rollback to previous checkoutGit 回滚到之前的结帐
【发布时间】:2012-05-03 19:03:34
【问题描述】:

我已经从 github 克隆了一些项目,到我的项目中,一切正常,我很高兴。

但是在一些 git pull 之后,我的项目中出现了一些与上游项目的新提交发生冲突。

我想回滚到以前的结帐,但我不知道我的项目中以前哪个稳定结帐。

我如何知道它并回滚到以前稳定的(对我而言)项目结帐?我理解从长远来看更正确的方法来解决我与上游仓库的冲突,但有时我只需要回滚到以前的版本,以获得解决问题的时间。

【问题讨论】:

标签: git


【解决方案1】:

如果您有一个可以执行的命令/脚本,并且可以说明“稳定点”(即某些工作正常,而不是当前不工作的状态),那么您可以考虑使用 @987654322 @ 命令。
请参阅“How to use git bisect?”。

这将帮助您隔离“它正在工作”的最后一次提交。

【讨论】:

  • 也似乎有点过头了,因为最近有一个已知点。
  • @CharlesB 当然,因此链接解释了如何使用它。无论如何,如果提交是最近的,其他答案似乎更合适。
  • 非常感谢。真的是我需要的。
【解决方案2】:

git reflog 应该告诉你操作的顺序,最近的在前。查找在第一次拉取/合并之前操作的提交 ID; checkoutreset --hard 到那个。

【讨论】:

    【解决方案3】:

    您是否已经提交了合并?如果没有,只需git reset --hard,您就会回到发布git pull 之前的状态。否则,git reset --hard HEAD^(如果合并是最后一次提交)可以解决问题,因为默认情况下 git 将始终选择合并提交的第一个父级,即您的分支。如果有疑问,您可以随时使用例如gitk 检查情况并找到分支上的最后一次提交,复制其 SHA1 哈希并恢复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-10
      • 2023-01-29
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 2020-11-27
      • 2021-10-25
      • 2021-08-10
      相关资源
      最近更新 更多