Git取消恢复

mat*_*thk 22 git version-control

在git中,我说我提交A和B.

A---[B]
Run Code Online (Sandbox Code Playgroud)

但后来我回复了

git revert HEAD
Run Code Online (Sandbox Code Playgroud)

所以我现在在那里:

[A]---B
Run Code Online (Sandbox Code Playgroud)

如何取消恢复以便我可以返回B?

Gre*_*ill 57

您有两个一般选择:

  • 还原还原提交(创建第二个还原提交,将您带回原始提交)
  • 扔掉恢复提交

git reset --hard HEAD ^

第二个选项仅适用于您在其他任何位置推送更改的情况.事实上,如果你还没有在任何地方推送你的第一个恢复提交,你可以简单地使用

git reset --hard

回滚而不创建任何恢复提交.

  • 不要进行重置-就像我一样努力,我在存储库中丢失了所有外部文件! (3认同)
  • 也许首先建议一个“git stash”。 (3认同)

Wes*_*Gun 12

如果您还没有完全完成,即,gitbash您会看到以下内容:

Username@Host MINGW64 /d/code/your-project (feature|REVERTING)
Run Code Online (Sandbox Code Playgroud)

然后你可以使用git revert --abort中止。

如果你已经完成了......只是不要重置,更改仍然存在。使用git reset改变的状态。代替--hard,您还可以使用--soft(保留所有更改)。

git reset --soft HEAD^ // discard the last commit, keeping all the changes after that
Run Code Online (Sandbox Code Playgroud)

此外,如果您想还原 1 个以上的提交:

git reset --soft HEAD~3 // discart last 3 commits. Don't know if it works for commits of others.
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我一直在寻找 --abort 选项。 (2认同)