Git:将非常大的主分支与功能分支

时间:2015-06-11 13:50:15

标签: git git-merge

现在,我非常清楚我只是做错了,所以让我来描述一下我的问题。

我有一个非常活跃的主分支的功能分支。该项目非常庞大。我在我的分支中更改了~30个文件,但还没有完成,所以我需要确保跟上master。所以,我这样做:

git merge --no-commit -s recursive -X theirs upstream/master

我得到了一个巨大的混乱。我没有触摸的文件经常以非常愚蠢的方式合并,我触摸的文件当然合并得很糟糕。我触摸的那些我明白我必须自己修复。

我也尝试过git merge的其他参数,但它没有做我想要的。

如何将主人合并到我的分支中,并以某种方式说它应该覆盖除触及的内容之外的所有内容?

现在,我必须遵循的过程是:

  • 进行合并
  • 确保我的主分支的未更改副本与我刚刚合并的修订版本相同。
  • 在两个源目录上运行WinMerge,并查看所有使用愚蠢合并破坏的文件。
  • 我没有触摸的每个文件,从未更改的一侧复制到合并端。 (我知道我可以通过git checkout来做到这一点,但是当你处理它破坏的数百个文件时,我更喜欢gui。)
  • 返回并手动合并我触摸过的文件,确保我的更改幸免于难。有时它们很好,有时它们会被覆盖。这似乎是随机的。

那么,我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

执行以下步骤:

git merge master

将出现冲突。

对于您更改的文件:

git checkout --ours file_name_modified_by_you

对于未经您修改的文件:

git checkout --theirs file_name_not_modified_by_you