我有远程存储库。 我这样做:
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,解决冲突和提交,但它没有帮助(我测试了它)。
答案 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继续重新定位并应用您的提交,将添加其他更改。