我也不确定如何问这个问题...但是也许:
我处于冲突状态。我想使用null-op
或/bin/bash
作为合并工具。
也就是说,我希望git创建(REMOTE,LOCAL,BASE等)文件,然后将我放回提示进行手动差异/合并。接着 我想告诉git我什么时候完成。
我想要什么是mergetool,如何指定它?
注意:这是一个related question,但1)它使重新基准化(我不是重新基准化)变得平庸; 2)没有令人满意的答案,例如“选择任何mergetool并强制退出它。” :P
答案 0 :(得分:1)
git mergetool
是一个shell脚本(/ bin / sh;如果只有bash而没有普通的旧sh,则/ bin / bash可以运行它)。它:
.BASE
=阶段1条目,.LOCAL
=阶段2条目,.REMOTE
=阶段3条目)。第四个文件用作对合并工具的检查-如果您要手动进行合并,则不需要这样做。git add
。它对所有未合并的文件循环执行此操作。
您的工作是修改该shell脚本,以便它提取三个文件并留下它们,即,执行(大部分)步骤1,然后完全不执行其余步骤。只需找到脚本(位于$(git --exec-path)/git-mergetool
中)并将其复制到其他名称下,例如git-extract-unmerged
,对其进行修改以使其符合您的期望,然后运行git extract-unmerged
,您将拥有所需的.BASE
,.LOCAL
和.REMOTE
文件。
(或者您可以将merge.conflictStyle
设置为diff3
,而不必为上述所有事情烦恼,因为工作树文件已包含您需要的所有信息。这就是我要做的。) / p>