Хорошо, отвечаю себе, когда я нашел решение.
Я нашел этот ответ и немного его изменил.Я добавил новую стратегию слияния, которая в основном берет файл таким, какой он есть во входящей ветви, и использует его без изменений, а затем помечает файл как конфликтующий.
Итак, я создал этот скрипт:
#!/bin/bash
# ${1} is the base common file
# ${2} is the file as modified by the base branch, and where the results must be
# ${3} is the file as modified by the incoming branch
# ${4} is the path of the file being merged
# ${4%.qm*} is the path without extension
# ${4##*.} is the extension of the path
# makes a backup of the original file to ease edits comparison
cat "${2}" > "${4%.qm*}.bk.${4##*.}"
cat "${3}" > "${2}"
exit 1
, который использует входящий файл как результат как есть, и возвращает 1, чтобы пометить его как конфликт.
Затем я добавил в .gitattributes параметр использовать эту стратегию для моего файла .qm, чтобыкогда я объединяю две ветви, я беру входящую версию как есть и использую графический инструмент для изменения и интеграции моих изменений.
Я оставлю этот вопрос как нерешенный, чтобы посмотреть, есть ли у кого-нибудь другое решение, котороепозволит мне использовать как rebase, так и слияние.
РЕДАКТИРОВАТЬ: я обновил скрипт, я добавил несколько строк, чтобы взять версию локальной ветви и сделать ее резервную копию, чтобы она была доступна для использованияв инструменте сравнения, чтобы легче идентифицировать мои изменения.