Git 将子文件合并回父文件...两个文件冲突
Git merge child back to parent... both files conflict
所以我开始从 master 分支到一个新分支:
git checkout -b branchA
在 branchA
中,我分支到 branchB
,因为我已经想要 branchA
中的更改。
当我完成 branchB
后,我想将更改折叠回 branchA
。我发现我在 branchA
中触及但在 branchB
中未触及的所有文件现在都与自身发生冲突 - 在 branchA
中更改的行现在显示为冲突我从 branchA
.
做了一个 git merge branchB
合并这些更改的正确方法是什么?
对了,我已经push到远程了,不知道这里rebase能不能用
在你之后[=23=]
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
并使用相同的命令。
从您提到的情况来看,您的观察结果是 Git 的预期行为。在 创建 branchB
之后,您对 branchA
中的文件进行了一些更改,然后您尝试将 branchB
合并到 branchA
。合并冲突的根源是这些文件中的每一个都有两个版本冲突,一个来自 branchB
,另一个来自 branchA
.
通常,您会在编辑器或 IDE 中打开有问题的文件,然后查找这样的冲突标记:
<<<<<<< HEAD
version in branchA
=======
version in branchB
>>>>>>>
选择正确的版本,然后提交文件。由于您已推送,请确认branchA
中的文件版本是否是您真正想要的。
啊抱歉。事实证明,branchA
自 branchB
以来发生了大量变化。因此,所有这些冲突。谢谢大家
所以我开始从 master 分支到一个新分支:
git checkout -b branchA
在 branchA
中,我分支到 branchB
,因为我已经想要 branchA
中的更改。
当我完成 branchB
后,我想将更改折叠回 branchA
。我发现我在 branchA
中触及但在 branchB
中未触及的所有文件现在都与自身发生冲突 - 在 branchA
中更改的行现在显示为冲突我从 branchA
.
git merge branchB
合并这些更改的正确方法是什么?
对了,我已经push到远程了,不知道这里rebase能不能用
在你之后[=23=]
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
并使用相同的命令。
从您提到的情况来看,您的观察结果是 Git 的预期行为。在 创建 branchB
之后,您对 branchA
中的文件进行了一些更改,然后您尝试将 branchB
合并到 branchA
。合并冲突的根源是这些文件中的每一个都有两个版本冲突,一个来自 branchB
,另一个来自 branchA
.
通常,您会在编辑器或 IDE 中打开有问题的文件,然后查找这样的冲突标记:
<<<<<<< HEAD
version in branchA
=======
version in branchB
>>>>>>>
选择正确的版本,然后提交文件。由于您已推送,请确认branchA
中的文件版本是否是您真正想要的。
啊抱歉。事实证明,branchA
自 branchB
以来发生了大量变化。因此,所有这些冲突。谢谢大家