gpt4 book ai didi

Git 如何回滚 rebase

转载 作者:IT王子 更新时间:2023-10-29 00:39:40 26 4
gpt4 key购买 nike

在 Git 中,如果您对 rebase 不满意,该如何回滚?

Git 没有 rebase 试运行。如果我做了一个 rebase 但还没有推送它,我该如何回滚到以前,就好像它从未发生过一样?

最佳答案

您可以使用 reflog在 rebase 开始之前找到第一个 Action ,然后重置 --hard 回到它。例如

$ git reflog

b710729 HEAD@{0}: rebase: some commit
5ad7c1c HEAD@{1}: rebase: another commit
deafcbf HEAD@{2}: checkout: moving from master to my-branch
...

$ git reset HEAD@{2} --hard

现在你应该回​​到 rebase 开始之前。

要找到正确的重置位置,您只需选择最接近顶部且以“rebase”开头的条目。

更新:如评论和其他答案中所述,您还可以使用 ORIG_HEAD 作为查找重置位置的更简单方法:git reset ORIG_HEAD --hard

替代方法

如果 rebase 是您在分支上所做的唯一,即您没有未推送的提交/更改 - 那么您可以使用 git branch -D< 删除本地分支 然后再次检查:

$ git checkout my-branch
$ git rebase master
// not happy with the result
$ git checkout master
$ git branch -D my-branch
$ git checkout my-branch

或者为了达到相同的效果,您可以将 --hard 重置为原始分支:

$ git reset --hard origin/my-branch

如果您在有其他未推送的提交时执行此操作,那么您将丢失它们。在这种情况下,只需使用上面的 reflog 方法跳回到您进行提交的 reflog 条目。

关于Git 如何回滚 rebase ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41049711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com