在我已经执行的分支中
git pull --rebase origin master
这导致了一些合并冲突。通过打开文件并选择代码所需的部分,我已经解决了冲突。然后我执行了git add
和git 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
和手动合并引入的更改?
答案 0 :(得分:2)
在rebase
上,将列出冲突。您需要解决每个文件中的冲突。
找到冲突的文件。
冲突看起来像这样
<<<<<<< HEAD
code from master branch
>>>>>>>>>>>>>>
<<<<<<<<< <some_commit_id>
code from your local file
>>>>>>>>>>>>>>>>>>>>>>>`
编辑该部分并保留您真正想要的代码。
然后在终端中使用
将文件添加到git git add <file_name>
解决所有冲突后,将其添加到git
运行git rebase --continue
如果您不想做任何此操作并想在rebase之前使用旧代码,只需运行git rebase --abort
答案 1 :(得分:0)
解决rebase中的冲突时,您不需要在git commit
之前运行git rebase --continue
,这可能是问题的原因
如果你这样做,那么git commit --rebase
会尝试提交更改并因为没有任何改变而感到困惑。
最简单的选择可能是撤消上次提交然后继续
git reset HEAD^
git rebase --continue
如果你对某个出错的基础太过深入,你也可以git rebase --abort
尝试重新开始。