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

Git:将非常大的主分支与功能分支合并,git,git-merge,Git,Git Merge,现在,我很清楚我可能完全错了,所以让我描述一下我的问题 我有一个非常活跃的主分支的特征分支。这个项目非常大。我已经在我的分支中更改了约30个文件,但还没有完成,所以我需要确保与master保持同步。因此,我确实: git merge --no-commit -s recursive -X theirs upstream/master 我弄得一团糟。我没有碰过的文件经常以非常愚蠢的方式合并,而我碰过的文件当然合并得很糟糕。我接触过的那些我明白我必须自己修复 我也尝试过git merge的其他参数

现在,我很清楚我可能完全错了,所以让我描述一下我的问题

我有一个非常活跃的主分支的特征分支。这个项目非常大。我已经在我的分支中更改了约30个文件,但还没有完成,所以我需要确保与master保持同步。因此,我确实:

git merge --no-commit -s recursive -X theirs upstream/master
我弄得一团糟。我没有碰过的文件经常以非常愚蠢的方式合并,而我碰过的文件当然合并得很糟糕。我接触过的那些我明白我必须自己修复

我也尝试过git merge的其他参数,但它没有达到我想要的效果

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

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

  • 合并
  • 确保我的主分支的未更改副本与刚才合并的版本相同
  • 在两个源目录上运行WinMerge,查看它因愚蠢的合并而中断的所有文件
  • 我没有接触过的每一个文件,都是从原封不动的一面复制到合并的一面。(我知道我可以用git checkout实现这一点,但当你处理数百个文件时,我更喜欢gui。)
  • 返回并手动合并我接触过的文件,确保我的更改保留下来。有时它们很好,有时它们被覆盖了。这似乎是随机的

那么,我做错了什么呢?

执行以下步骤:

git merge master
冲突将会出现

对于您更改的文件:

git checkout --ours file_name_modified_by_you
git checkout --theirs file_name_not_modified_by_you
对于未被您修改的文件:

git checkout --ours file_name_modified_by_you
git checkout --theirs file_name_not_modified_by_you

你有没有考虑过将你的更改重新绑定到新的主版本上?git merge master有什么问题?很明显我不是git专家。Rebase有点可怕。我确实读过文档。默认值是我们的。我不认为告诉我避免选择,不回答问题是有帮助的。我相信递归是默认的。我们的:“这个选项通过支持我们的版本,强制冲突的大块头被自动干净地解决。”-他们的正好相反。这正是我想要的。这不起作用,因此,问题是。对不起,这没有帮助,因为我在帖子中说,我已经在做类似的事情了。