Git 象征性地合并分支

Git merge branches symbolically

我有两个分支 A 和 B,我想将 B 合并到 A。但是,我不希望 B 的任何更改转移到 A。除了合并后进行的手动更改外,A 应该保持不变。我知道这在技术上违背了合并的整个想法,但这是关于 记录 这些分支是相关的。我想要的是,存储库的图表在相应的提交中合并了这两个图表,即我希望 git 到 "think" 有一个实际的合并。

一种可能的方法是在合并后执行 reset。然而,这并不像上面描述的那样出现在图表中。分支之间没有实际的link。

如果取Branch B->A的diff,A->B的diff,可以合并B->A,然后提交diff A->B,基本上撤消任何更改。您将有一个额外的提交,但更改将被跟踪。

这叫做"null merge"。使用 --strategy=ours:

git checkout A
git merge -s ours B

PS。不要混淆 --strategy=ours --strategy-option=ours;后者是默认递归策略的一个选项;该选项合并没有冲突的文件。