在git中,如何增加合并的上下文?

在git中,如何增加合并的上下文?,git,merge,diff,git-merge,Git,Merge,Diff,Git Merge,当我合并大的更改时,git经常会被弄糊涂,因为它没有使用足够的上下文行。它在两个不同子例程的相似结尾之间混淆,这两个子例程的结尾都是: . return 1; . } (此处使用的点表示空行) 当我使用“git diff”时,我可以说-U20来查看20行上下文。但是我能告诉git在合并时也使用这个标志吗 答案是否与合并策略/选项有关,例如: git merge -s recursive -X patience [branch] 就我所知,在合并过程中没有办法增加上下文行。耐心差异算法应该能够

当我合并大的更改时,git经常会被弄糊涂,因为它没有使用足够的上下文行。它在两个不同子例程的相似结尾之间混淆,这两个子例程的结尾都是:

.
return 1;
.
}
(此处使用的点表示空行)

当我使用“git diff”时,我可以说-U20来查看20行上下文。但是我能告诉git在合并时也使用这个标志吗

答案是否与合并策略/选项有关,例如:

git merge -s recursive -X patience [branch]

就我所知,在合并过程中没有办法增加上下文行。耐心差异算法应该能够更好地处理您的用例。git merge(1)手册页这样描述它:

使用此选项,merge recursive会花费一些额外的时间 避免有时由于不重要的原因而发生的错误合并 匹配行(例如,来自不同函数的大括号)。用这个 当要合并的分支发生了巨大的分歧时

因为这看起来和你描述的情况一模一样,耐心似乎是为帮助你而定制的。您可以在一个废弃的分支上进行尝试,如下所示:

git checkout -b temp_merge_branch master
git merge --strategy-option=patience other_branch

如果合并工作正常,则可以使用结果快进主分支。如果没有,您可以扔掉临时分支,然后寻找其他替代方法。

使用这些设置可以获得五行上下文的耐心差异:

git config --global diff.algorithm patience
git config --global diff.context 5
如果您经常使用
--颜色词
,这也很有用:

git config --global diff.wordRegex '[A-z0-9_]+|[^[:space:]]'

第一个设置需要。

有关耐心差异的相关问题:对于一次性用户,您可以使用
git-c diff.context=5 merge-Xpatience