如果我 rebase git 分支本身会怎样?

What if I rebase git branch on itself?

我想,我刚刚重新建立了一个基于自身的分支,现在它有点循环(写 'rebasing' 超过半小时)。我该如何解决?

Ctrl+C 如果您使用的是命令提示符,则终止 git 命令。如果 Ctrl+C 没有帮助,请关闭您使用的应用程序。

之后,返回您的 git 文件夹并检查您的位置,在 'worst' 的情况下,只需使用 git-rebase --abort.

中止变基

您也可以随时 git reset --hard 回到变基前的状态。

看起来你陷入了变基模式,但你没有创建循环分支(不用担心)。

git的核心概念是提交,提交的基础是一次提交只能有一个父提交(例外是初始提交,什么都不引用)。

那么在终端中,当您在终端中执行 git status 时,屏幕上会显示什么? 下面的屏幕是 git status 应该 return 如果你被困在 rebase 中的一个例子(不要介意分支和文件)。重要的是第一行 You are currently rebasing branch.

这是一个很好的情况指示器,终端会在这一行下方告诉您您有什么选择。

只需按照指南和 git rebase --abort 进行操作,它将退出当前的 rebase 并将你的 git repo 设置为 rebase 之前的原始状态,就好像什么都没发生一样

如果您想继续进行变基,修复可能未合并的文件或解决冲突并提交更改,然后执行 git rebase --continue

GIT 是您的代码的时间机器,所以如果您认为在 git reset --hardgit rebase 之后搞砸了什么,请不要惊慌 git reflog 将显示您的 git 操作历史时间表,其中包含操作哈希(如提交哈希)和操作描述。

通过复制哈希选择一个你想返回的操作并将其与 git reset --hard <action hash you want to go back to> 一起使用。在我的例子中,我想回到我所做的所有令人困惑的事情之前所做的最后一次提交,所以我将在我的终端中写入 git reset --hard 420d527 但请注意 --hard 将清除所有未提交的更改