【问题标题】:git go back to a previous commitgit 返回上一个提交
【发布时间】:2018-08-13 17:36:53
【问题描述】:

我有以下情况。 我的项目工作的提交。 下一次提交发生了我无法解释的可怕事情。 所以

badcommit (HEAD->master) How horrible!
goodcommit Here it works

所以我做了git checkout goodcommit,我的项目又开始工作了! (呼!)。

 goodcommit(HEAD) Here it works

所以现在我想从这里开始,忘记那可怕的经历。我读到你可以恢复提交。那么我怎样才能让master进入goodcommit并从那里继续呢?

(我读过非常复杂的答案,但我记得它很简单:一个接受最后一次提交并恢复到前一个提交的单行命令,而不是像我读过的一系列复杂命令)

【问题讨论】:

  • 你已经签出了好的提交。现在在该点创建一个分支并继续,或者将旧分支重置为良好的提交。
  • @evolutionxbox 是的,我可以这样做,但会失去主分支。所以需要还原
  • 为什么会丢失 master 分支?自那次糟糕的提交以来,您是否进行过多次提交?
  • 参见stackoverflow.com/q/51814990/1256452。这个特定的问题及其答案的目的是:“我们已经工作了一周,做了几十次提交,现在我们都需要回到一周前”。对于您的特定简单案例,您只需要一个git revertgit reset

标签: git


【解决方案1】:

您可以使用以下命令,

git log

它将为您提供以前提交的列表,从提交中复制那个长字符串,然后使用

$ git reset --hard <COMMIT -ID>

例如:git reset --hard 6504ab87416af0571ae628511207813f20bb2d2c

就是这样。

【讨论】:

  • 回答重复的问题并不是最好的办法
  • @Neeraj 我必须复制整个号码吗?我以为只有前 7 个
  • 也许他没有找到想要的输出,或者他可能不清楚。
  • 我不确定。我总是复制整数,但你可以尝试自己的技巧,让我知道它是否有效。
  • @Neeraj 考虑使用“the OP”而不是“he”或“him”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 2022-06-11
  • 2013-02-26
  • 2019-07-05
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
相关资源
最近更新 更多