在git中假设我提交了A和B
A---[B]
但我会回复
git revert HEAD
所以我现在在那里:
[A]---B
我如何取消我的还原以便我可以返回到B?
afdcj2ne1#
您有两个一般选择:
git reset --hard HEAD^第二个选项仅适用于您没有将更改推送到其他任何地方的情况。事实上,如果您还没有将第一次revert提交推到任何地方,您可以简单地使用git reset --hard在不创建任何revert提交的情况下回滚。
nwwlzxa72#
如果你还没有完全完成,例如,在gitbash中,你会看到这样的东西:
gitbash
Username@Host MINGW64 /d/code/your-project (feature|REVERTING)
然后你可以使用git revert --abort来中止。如果你做了..只是不要重置,变化仍然存在。使用git reset更改状态。除了--hard,您还可以使用--soft(保留所有更改)。
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.
gab6jxml3#
当你创建一个新的reverts another commit时,你可以把它当作一个普通的提交。所以基本上你有很多选择,比如
reverts another commit
git rebase -i
git reset --hard <commitID>
git reset --soft <commitID>
git revert <commitId>
uklbhaso4#
你可以做的是“挑选”原始提交并再次推送。
4条答案
按热度按时间afdcj2ne1#
您有两个一般选择:
git reset --hard HEAD^
第二个选项仅适用于您没有将更改推送到其他任何地方的情况。事实上,如果您还没有将第一次revert提交推到任何地方,您可以简单地使用
git reset --hard
在不创建任何revert提交的情况下回滚。
nwwlzxa72#
如果你还没有完全完成,例如,在
gitbash
中,你会看到这样的东西:然后你可以使用
git revert --abort
来中止。如果你做了..只是不要重置,变化仍然存在。使用
git reset
更改状态。除了--hard
,您还可以使用--soft
(保留所有更改)。另外,如果你想恢复1个以上的提交:
gab6jxml3#
当你创建一个新的
reverts another commit
时,你可以把它当作一个普通的提交。所以基本上你有很多选择,比如
git rebase -i
(删除恢复提交)git reset --hard <commitID>
(重置为恢复前的提交,您将丢失所有本地更改)git reset --soft <commitID>
(与上述相同,但保留本地更改)git revert <commitId>
来恢复您的恢复uklbhaso4#
你可以做的是“挑选”原始提交并再次推送。