Когда Git обнаруживает конфликт во время слияния, поведение по умолчанию - заполнение файла маркерами
>>
===
.
Большую часть времени это нормально, но иногда мне хотелось бы решать конфликты по-другому, и я просто хотел бы, чтобы Git создавал различные файлы:
Как этого добиться?
Если нет простой команды создать эти файлы за один заход (что несколько удивительно), может быть, есть способ расширить Git таким образом, чтобы он это делал? Пользовательский mergetool
или что-то в этом роде? Просто идея.
Я остановился на варианте @ Ответ Карла Билефельдта:
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
config
mergetool.savefiles.cmd=/path/to/savefiles.sh $BASE $LOCAL $REMOTE $MERGED
mergetool.savefiles.trustexitcode=true