如何离开"git pull --rebase"创建的时间分支?

How to leave the temporal branch created by "git pull --rebase"?

我在分支中执行了

git pull --rebase origin master

这导致了一些合并冲突。通过打开文件并选择所需的代码部分,我已经解决了冲突。然后我执行了 git addgit commit.

现在,当我执行 git branch 时,我发现我不在原来的分支中,而是在一个名为:

的分支中
(no branch, rebasing my_branch_name)

git status 告诉:

rebase in progress; onto 5ae1f3d58
You are currently rebasing branch 'my_branch_name' on '7af1d3d38'.
  (all conflicts fixed: run "git rebase --continue")

nothing to commit, working tree clean

然而,当我按照建议执行git rebase --continue时,没有任何变化。我仍然停留在这个奇怪的时间分支中。那么,我怎样才能回到我的分支并保留由 git pull --rebase 和手动合并引入的更改?

rebase,将列出冲突。您需要解决每个文件中的冲突。

找到冲突的文件。

冲突看起来像这样

<<<<<<< HEAD
code from master branch
>>>>>>>>>>>>>>
<<<<<<<<< <some_commit_id>
code from your local file
>>>>>>>>>>>>>>>>>>>>>>>`

编辑该部分并保留您实际需要的代码。

然后在终端中使用

将文件添加到git

git add <file_name>

所有冲突都得到解决并添加到 git

之后

运行 git rebase --continue

如果你不想做任何这些并且想要在变基之前的旧代码,只需 运行 git rebase --abort

在 rebase 中解决冲突时,您不需要在 git rebase --continue 之前 运行 git commit,这可能是问题的原因

如果您这样做,那么 git commit --rebase 将尝试提交更改并感到困惑,因为没有任何更改。

最简单的选择可能是撤消上次提交然后继续

git reset HEAD^
git rebase --continue

如果你对 rebase 太深入而出错,你也可以 git rebase --abort 并尝试重新开始。