Git将孩子合并回父母...两个文件冲突

时间:2015-04-10 02:48:30

标签: git merge

所以我开始分支到master的新分支:

git checkout -b branchA

branchA时我分支到branchB因为我想要branchA中的更改。

当我完成branchB后,我想将更改折回branchA。我发现我在branchA但未在branchB中触及的所有文件现在都与自身发生冲突 - branchA中更改的行现在显示为冲突之后我从git merge branchB做了branchA

合并这些更改的正确方法是什么?

顺便说一句,我已经推到了遥控器,所以我不知道rebase是否可以在这里工作。

3 个答案:

答案 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)

对不起啊。结果branchAbranchB以来发生了很多变化。因此所有这些冲突。谢谢大家。