Для разности, существует git diff --ignore-space-at-eol
, который должен быть достаточно хорошим. Для разности и вины, можно проигнорировать все пробельные изменения с -w
: git diff -w
, git blame -w
.
Для git apply
и git rebase
, упоминания документации --ignore-whitespace
.
Для слияния похоже, что необходимо использовать внешний инструмент слияния. Можно использовать этот (непротестированный) сценарий обертки, где favorite-mergetool
Ваш любимый инструмент слияния; выполненный git -c mergetool.nocr.cmd=/path/to/wrapper/script merge
. Результат слияния будет в формате Unix; если Вы предпочитаете другой формат, преобразовываете все в тот другой формат или преобразовываете $MERGED
после слияния.
#!/bin/sh
set -e
TEMP=$(mktemp)
tr -d '\013' <"$BASE" >"$TEMP"
mv -f "$TEMP" "$BASE"
TEMP=$(mktemp)
tr -d '\013' <"$LOCAL" >"$TEMP"
mv -f "$TEMP" "$LOCAL"
TEMP=$(mktemp)
tr -d '\013' <"$REMOTE" >"$TEMP"
mv -f "$TEMP" "$REMOTE"
favorite-mergetool "$@"
Для уменьшения проблемы со смешанными окончаниями строки удостоверьтесь, что текстовые файлы объявляются как таковые.
См., что также для слияния мерзавца действительно ли возможно проигнорировать заканчивающие строку различия? на Переполнении стека.
bl = blame -w
но Вы не можете переопределить название встроенных команд, и я не вижу параметра конфигурации сделать его значением по умолчанию. Но я не эксперт мерзавца. – Gilles 'SO- stop being evil' 11.02.2015, 19:06