Git取消还原

mxg2im7a  于 2023-09-29  发布在  Git
关注(0)|答案(4)|浏览(106)

在git中假设我提交了A和B

A---[B]

但我会回复

git revert HEAD

所以我现在在那里:

[A]---B

我如何取消我的还原以便我可以返回到B?

afdcj2ne

afdcj2ne1#

您有两个一般选择:

  • revert revert commit(创建第二个revert commit,将您带回到原始提交)
  • 丢弃revert commit

git reset --hard HEAD^
第二个选项仅适用于您没有将更改推送到其他任何地方的情况。事实上,如果您还没有将第一次revert提交推到任何地方,您可以简单地使用
git reset --hard
在不创建任何revert提交的情况下回滚。

nwwlzxa7

nwwlzxa72#

如果你还没有完全完成,例如,在gitbash中,你会看到这样的东西:

Username@Host MINGW64 /d/code/your-project (feature|REVERTING)

然后你可以使用git revert --abort来中止。
如果你做了..只是不要重置,变化仍然存在。使用git reset更改状态。除了--hard,您还可以使用--soft(保留所有更改)。

git reset --soft HEAD^ // discard the last commit, keeping all the changes after that

另外,如果你想恢复1个以上的提交:

git reset --soft HEAD~3 // discart last 3 commits. Don't know if it works for commits of others.
gab6jxml

gab6jxml3#

当你创建一个新的reverts another commit时,你可以把它当作一个普通的提交。
所以基本上你有很多选择,比如

  • git rebase -i(删除恢复提交)
  • git reset --hard <commitID>(重置为恢复前的提交,您将丢失所有本地更改
  • git reset --soft <commitID>(与上述相同,但保留本地更改)
  • 从技术上讲,您可以使用git revert <commitId>来恢复您的恢复
uklbhaso

uklbhaso4#

你可以做的是“挑选”原始提交并再次推送。

相关问题