git rebase与冲突不起作用

时间:2013-10-18 08:40:18

标签: git rebase

我有远程存储库。 我这样做:

git clone https://mylogin@bitbucket.org/mylogin/myrepo.git

克隆成功。 我有git tree:
C(主)
| B:
| /
B /
|

|
A0
|
A01(原点/头)(原点/主)
|(一些提交)

我需要:
B:
C(主)/

我需要rebase分支B到C(主) 我做了什么:

git checkout b1
Switched to branch 'b1'
git rebase master
First, rewinding head to replay your work on top of it...
Applying: B:A
Using index info to reconstruct a base tree...
M   index1.txt
Falling back to patching base and 3-way merge...
Auto-merging index1.txt
CONFLICT (content): Merge conflict in index1.txt
Failed to merge in the changes.
Patch failed at 0001 B:A
The copy of the patch that failed is found in:
   /pth/to dir/.git/rebase-apply/patch

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".

git branch
* (no branch)
  b1
  master

我该怎么办? 我可以切换分支b1,解决冲突和提交,但它没有帮助(我测试了它)。

1 个答案:

答案 0 :(得分:28)

如果Git检测到无法自动解决的冲突,它将停止变基。在您的情况下,文件index1.txt中存在冲突(您可以在输出中看到它,以及稍后运行git status时)。您必须在继续之前修复冲突。修改文件,您会看到<<<<<<======>>>>>>标记。冲突就在那些行中,<=之间的内容是master中的更改,之后(>)是分支b1中的更改}。修复它,删除git标记(<=>),然后运行git add index1.txt,然后转到下一个文件(如果有的话,在此处仅示例index1.txt个冲突)。完成添加所有文件后,请运行git rebase --continue。如果git遇到另一个冲突,只需为它遇到问题的每个文件重复该过程。一旦你完成了,git会告诉你rebase已经成功完成,你将回到分支b1。如果要停止进程并返回原始b1(在rebase命令之前),只需运行git rebase --abort

请记住,在修复冲突时,请不要将文件编辑为最终提交时应该存在的文件,而只是引入您对该特定提交所需的更改。随着git继续重新定位并应用您的提交,将添加其他更改。