另一个S.O.问题展示了如何配置git
在合并冲突时使用三路差异。
是否可以将这种三路样式设置为标准差异操作的默认值?如果我请求两个版本之间的差异,其中存在一个共同的根(不仅是这些版本中的一个),则会在差异中显示从共同根开始的更改。
git diff
时如何指定参数,它始终只考虑两个实体(大多数情况下从引用它们的提交中推断出的blob或tree)。git diff
考虑单独的对象,不进行任何历史遍历。引用git diff
手册页面:<commit>
的更完整列表,请参阅gitrevisions(7)
中的“指定修订版本”部分。但是,“diff”是关于比较两个端点而不是范围,并且范围符号("<commit>..<commit>
"和"<commit>...<commit>
")并不意味着“SPECIFYING RANGES”部分中定义的范围。”rev1
和rev2
,您可以使用以下命令:git-diff3() {
local rev1="$1" rev2="$2"
diff3 <(git show "$rev1") \
<(git show $(git merge-base "$rev1" "$rev2")) \
<(git show "$rev2")
}
<(...)
(例如 bash
)的 shell 中。