两个不同分支的Git merge与cherry pick

两个不同分支的Git merge与cherry pick,git,merge,Git,Merge,我有两个没有共同祖先的分支,让我们称它们为master和other。他们的内容差别很大,这一点必须保持下去。新的更改几乎总是在master上完成,并通过一些手动合并将cherry挑选到other,这是无法消除的。这也不会改变 我想知道像这样将master假合并到其他中会有什么后果 git checkout other git merge -s ours master 然后总是合并而不是采摘樱桃。好处显而易见: 这样就不需要记住该挑选什么了 它允许一次合并多个更改(有时可能更容易) 它在分支机

我有两个没有共同祖先的分支,让我们称它们为
master
other
。他们的内容差别很大,这一点必须保持下去。新的更改几乎总是在
master
上完成,并通过一些手动合并将cherry挑选到
other
,这是无法消除的。这也不会改变

我想知道像这样将
master
假合并到
其他
中会有什么后果

git checkout other
git merge -s ours master
然后总是合并而不是采摘樱桃。好处显而易见:

  • 这样就不需要记住该挑选什么了
  • 它允许一次合并多个更改(有时可能更容易)
  • 它在分支机构之间建立了明确的关系

我可以想象,在极少数情况下,当不需要从另一个分支中挑选某些东西时,这会让我的生活变得更加艰难,但这并不是真正的问题。在我做这件事之前,我想知道是否有我不知道的缺点?

没有明显的缺点,尤其是与采摘樱桃相比,即:

因此,伪合并允许您将合并公共祖先重置为最近的提交,并且从那里只合并您需要的内容

注:有以下解决方案:

git重置。。。
git添加-p。。。

听起来不错,而且你似乎知道自己在说什么。问题是为什么我没有早点想到这个主意?我从未见过有人推荐这种假合并。@maaartinus,因为大多数情况下,它只向分支报告几个提交,而不是“除了一两个文件以外的所有提交”。在形式上,樱桃采摘是通常的解决方案。
git reset <paths>...
git add -p <paths>...