<<<
>>>
===
标记填充文件。大多数情况下这样做没问题,但有时我想以不同的方式解决冲突,只希望Git创建不同的文件:
- 原始版本, - 更改后的版本A, - 更改后的版本B。
如何实现?
如果没有一条简单的命令可以一次性创建这些文件(这有点令人惊讶),也许有一种方法可以扩展Git,使其可以执行此操作?一个自定义的
mergetool
或其他什么东西?这只是一个想法。
解决方案:
我采用了@Karl Bielefeldt的答案的变体:
savefiles.sh
#!bash
BASE=$1
LOCAL=$2
REMOTE=$3
MERGED=$4
cp "$BASE" "$MERGED.git_BASE"
cp "$LOCAL" "$MERGED.git_LOCAL"
cp "$REMOTE" "$MERGED.git_REMOTE"
# never mark the conflict as merged
exit 1
配置
mergetool.savefiles.cmd=/path/to/savefiles.sh $BASE $LOCAL $REMOTE $MERGED
mergetool.savefiles.trustexitcode=true