Хотя Git имеет внутреннюю реализацию diff, вы можете вместо этого настроить внешний инструмент.
Существует два разных способа задания внешнего инструмента сравнения:
- установка переменных окружения
GIT_EXTERNAL_DIFF
и GIT_DIFF_OPTS
.
- настройка внешнего инструмента сравнения с помощью
git config
Смотри также:
При выполнении git diff
, Git проверяет настройки вышеуказанных переменных среды и свой файл .gitconfig
.
По умолчанию Git передает следующие семь аргументов программе diff:
path old-file old-hex old-mode new-file new-hex new-mode
Обычно вам нужны только параметры old-file и new-file. Конечно, большинство инструментов сравнения принимают в качестве аргумента только два имени файла. Это означает, что вам нужно написать небольшой скрипт-обертку, который принимает аргументы, которые Git предоставляет скрипту, и передает их внешней программе git по вашему выбору.
Допустим, вы поместили свой скрипт-обертку в ~/scripts/my_diff.sh
:
#!/bin/bash
# un-comment one diff tool you'd like to use
# side-by-side diff with custom options:
# /usr/bin/sdiff -w200 -l "$2" "$5"
# using kdiff3 as the side-by-side diff:
# /usr/bin/kdiff3 "$2" "$5"
# using Meld
/usr/bin/meld "$2" "$5"
# using VIM
# /usr/bin/vim -d "$2" "$5"
Затем вам нужно сделать этот скрипт исполняемым:
chmod a+x ~/scripts/my_diff.sh
тогда вам нужно сообщить Git, как и где найти ваш собственный скрипт для оболочки diff.
У вас есть три варианта, как это сделать: (Я предпочитаю редактировать файл .gitconfig)
Использование GIT_EXTERNAL_DIFF
, GIT_DIFF_OPTS
например. в вашем файле .bashrc или .bash_profile вы можете установить:
GIT_EXTERNAL_DIFF=$HOME/scripts/my_diff.sh
export GIT_EXTERNAL_DIFF
Использование git config
используйте "git config", чтобы определить, где находится ваш скрипт-обертка:
git config --global diff.external ~/scripts/my_diff.sh
Редактирование файла ~/.gitconfig
Вы можете отредактировать файл ~/.gitconfig
, добавив в него следующие строки:
[diff]
external = ~/scripts/my_diff.sh
Примечание:
Аналогично установке пользовательского инструмента сравнения, вы также можете установить пользовательский инструмент слияния, который может быть визуальным инструментом слияния, чтобы лучше помочь визуализировать слияние. (см. страницу progit.org)
См .: http://fredpalma.com/518/visual-diff-and-merge-tool/ и https://git -scm.com / book / ru / v2 / Настройка Git-Git-Configuration