所以我开始分支到master的新分支:
git checkout -b branchA
在branchA
时我分支到branchB
因为我想要branchA
中的更改。
当我完成branchB
后,我想将更改折回branchA
。我发现我在branchA
但未在branchB
中触及的所有文件现在都与自身发生冲突 - branchA
中更改的行现在显示为冲突之后我从git merge branchB
做了branchA
。
合并这些更改的正确方法是什么?
顺便说一句,我已经推到了遥控器,所以我不知道rebase是否可以在这里工作。
答案 0 :(得分:3)
你
之后git checkout -b branchA
您可能在branchA
签出时进行了一些更改。当你失败时,你可能做了类似
git checkout -b branchB
现在您已查看branchB
。您在branchB
上进行了一些更改。完成branchB
上要执行的任何操作后,您希望将这些更改合并到branchA
。所以你做了
git checkout branchA
git merge branchB
如果您有任何合并冲突,它们会立即出现。但除非其他人对branchA
进行了更改(或者您对branchA
进行了更改),否则您不会有任何冲突。
到目前为止,分支机构只在您的机器上本地存在。如果您想将它们推送到远程服务器上,您可以
git push origin branchA //Assuming you have branchA checked out on your local
如果要将branchB
推送到远程服务器,则应检出branchB
并使用相同的命令。
答案 1 :(得分:0)
根据您的提及,您的观察结果是Git的预期行为。您在创建branchA
后对branchB
中的文件进行了一些更改,然后尝试将branchB
合并到branchA
。合并冲突的根源是每个冲突文件有两个版本,一个来自branchB
,另一个来自branchA
。
通常,您可以在编辑器或IDE中打开相关文件,并查找这样的冲突标记:
<<<<<<< HEAD
version in branchA
=======
version in branchB
>>>>>>>
选择正确的版本,然后提交文件。由于您已经推送过,请确认branchA
中的文件版本是您真正想要的。
答案 2 :(得分:-3)
branchA
自branchB
以来发生了很多变化。因此所有这些冲突。谢谢大家。