如果我 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 --hard
或 git rebase
之后搞砸了什么,请不要惊慌
git reflog
将显示您的 git 操作历史时间表,其中包含操作哈希(如提交哈希)和操作描述。
通过复制哈希选择一个你想返回的操作并将其与 git reset --hard <action hash you want to go back to>
一起使用。在我的例子中,我想回到我所做的所有令人困惑的事情之前所做的最后一次提交,所以我将在我的终端中写入 git reset --hard 420d527
但请注意 --hard
将清除所有未提交的更改
我想,我刚刚重新建立了一个基于自身的分支,现在它有点循环(写 '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 --hard
或 git rebase
之后搞砸了什么,请不要惊慌
git reflog
将显示您的 git 操作历史时间表,其中包含操作哈希(如提交哈希)和操作描述。
通过复制哈希选择一个你想返回的操作并将其与 git reset --hard <action hash you want to go back to>
一起使用。在我的例子中,我想回到我所做的所有令人困惑的事情之前所做的最后一次提交,所以我将在我的终端中写入 git reset --hard 420d527
但请注意 --hard
将清除所有未提交的更改