我一直在本地副本上工作,这是一个远程git仓库。 我在本地副本上创建了一个分支,叫做'my_branch'。 我已经在'my_branch'上提交了几次。
最近我将'my_branch'推送到了远程。但是我不知道有人向远程主分支添加了一个版本。所以,我将它拉到了我的本地主分支。
总之,我的本地仓库看起来像这样(我试图使用这里的图表约定)。
--C0--------------C7-- (local master)
\
--C1-C2-C3-- (local my_branch)
\
--C4-C5-C6-- (local sandbox_branch)
我希望它看起来像这样:
--C0--------------C7-- (local master)
\
--C1'-C2'-C3'-- (local my_branch)
\
--C4'-C5'-C6'-- (local sandbox_branch)
我试图将我的分支rebase到本地master上,但是我得到了这个错误消息(我使用一个名为GitX的git可视化工具):
Rebase Failed!
There was an error rebasing HEAD with branch 'master'.
command: git rebase refs/heads/master
It seems that I cannot create a rebase-apply directory, and
I wonder if you are in the middle of patch application or another
rebase. If that is not the case, please
rm -fr /my_project_directory/.git/rebase-apply
and run me again. I am stopping in case you still have something
valuable there.
我做错了什么?我应该如何处理?如果我要在命令行上执行此操作,那么将我带到图中状态的命令是什么?更新1:
顺便说一下,我没有处于应用程序补丁或其他rebase的中间状态...至少不是故意的。 在发现我推送后远程更新了之后,我进行了一次fetch。这会导致GitX认为我处于应用程序补丁或另一个rebase的中间状态吗?
我还更新了图表以使其更准确。有一个从my_branch分支出来的分支。我最初没有包括它在内,因为我认为这并不重要。我包括它只是以防万一...
更新2:
FYI... 'local'和'remote'的master tree看起来像我画的图,除了它没有sandbox_branch。
git rebase --abort
吗? - Fred Foogit status
命令输出了什么? - fgegit rebase --abort
命令后,提示信息为HEAD is now at 445ef4b REMOVED "ADD AN ALBUM" BUTTON
。但是当我在GitX中查看分支图表时...似乎没有任何变化。 - milesmeowgit status
给了我# On branch lite_main nothing to commit (working directory clean)
。注意:这是在执行git rebase --abort
之后的情况。我尝试使用 GitX 再次进行变基。我认为它运行了git rebase master lite_main
。现在我得到了合并冲突……我想这就是我预期的结果。:) 听起来对吗?我仍然在我的 lite_main 分支上。所以我应该在该分支上解决冲突,然后运行git rebase --continue
,是吗? - milesmeow