Как настроить Git на использование другого инструмента для сравнения с файлом .gitconfig?
У меня есть это в моем .gitconfig:
[diff]
tool = git-chdiff #also tried /bin/git-chdiff
Это не работает; он просто открывает обычную командную строку diff. Когда я делаю
export GIT_EXTERNAL_DIFF=git-chdiff
затем git diff
откроется внешний инструмент сравнения (так что я знаю, что сценарий внешнего инструмента сравнения работает нормально). У меня что-то не так с моей конфигурацией .gitconfig для инструмента сравнения?
Ответы:
Git предлагает ряд предварительно настроенных difftools «из коробки» (kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, diffuse, opendiff, p4merge и araxis), а также позволяет вам указать свой. Чтобы использовать один из предварительно настроенных difftools (например, «vimdiff»), вы добавляете следующие строки
~/.gitconfig
:Теперь вы сможете запустить «git difftool» и использовать свой инструмент по своему выбору.
С другой стороны, для задания собственного difftool требуется немного больше работы, см. Как просмотреть вывод 'git diff' с помощью моего предпочтительного инструмента / средства просмотра diff?
источник
.com
на.org
. Я могу просматривать jeetworks.org/softwareДополнительный способ сделать это (из командной строки):
Первые две строки установят difftool и mergetool в
tkdiff
соответствии с вашими предпочтениями. Третья строка отключает надоедливую подсказку, поэтому при каждомgit difftool
нажатии она автоматически запускает difftool.источник
git config --global diff.tool diffmerge
но когда яgit diff myfile.txt
это сделал, он все еще дал мне стандартную версию unix diffДругие ответили на этот вопрос на 99%, но остался один шаг. (Мой ответ будет исходить из OS X, поэтому вам придется соответствующим образом изменить пути к файлам.)
Вы вносите эти изменения в свой
~/.gitconfig
:Это исправит инструмент сравнения. Вы также можете исправить это, не редактируя
~/.gitconfig
напрямую, введя следующие команды из терминала:1%, о которых все остальные не упомянули, это то, что при использовании этого вы не можете просто бежать
git diff myfile.txt
; тебе нужно бежатьgit difftool myfile.txt
.источник
git config --global --add difftool.prompt false
, хотя. ;)Вот часть моего ~ / .gitconfig, где я настраиваю инструменты сравнения и слияния. Мне нравится diffmerge от SourceGear. (Мне очень очень нравится, на самом деле).
Итак, вы видите, вы определяете инструмент с именем «diffmerge» в
[difftool "diffmerge"]
линии. Затем я устанавливаю инструмент "Diffmerge" в качестве значения по умолчанию в[diff] tool =
разделе.У меня, очевидно, есть команда «diffmerge» на моем пути, здесь. В противном случае мне нужно было бы указать полный путь к исполняемому файлу.
источник
diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
diffmerge --merge --result="$MERGED" "$LOCAL" "$BASE" "$REMOTE"
ln-s <pathtodiffmerge>/sgdm_cygwin.sh /usr/local/bin/diffmerge
и все готово для использования конфигурации выше. А такжеdiffmerge
непосредственно из командной строки cygwin с путями cygwin.sgdm.exe
настоящее времяВоспроизведение моего ответа из этой темы, который был более специфичен для настройки, чем сравнение, как инструмент сравнения для Git. Все детали, которыми я поделился, одинаково полезны для любого инструмента сравнения в общем, поэтому делитесь им здесь:
Первая команда, которую мы запускаем, выглядит так:
Приведенная выше команда создает следующую запись в
.gitconfig
найденном в%userprofile%
каталоге:Затем вы запускаете команду ниже ( Выполнение этой команды является избыточным в данном конкретном случае и требуется только в некоторых специализированных случаях. Вы узнаете об этом в ближайшее время ):
Команда выше создает следующую запись в
.gitconfig
файле:Здесь важно знать ключ
bc3
. Это хорошо известный ключ для git, соответствующий определенной версии известных инструментов сравнения, доступных на рынке (bc3
соответствует 3-й версии инструмента Beyond Compare). Если вы хотите увидеть все предопределенные ключи, просто запуститеgit difftool --tool-help
команду на git bash. Это возвращает ниже список:Вы можете использовать любой из вышеперечисленных ключей или определить свой собственный ключ. Если вы хотите полностью настроить новый инструмент (или недавно выпущенную версию известного инструмента), который не сопоставляется ни с одним из перечисленных выше ключей, вы можете сопоставить его с любым из перечисленных выше ключей или с новым ваш собственный ключ.
Что делать, если вам нужно настроить инструмент сравнения, который
ИЛИ
Как и в моем случае, я установил «вне сравнения 4». «Вне сравнения» - это хорошо известный инструмент для git, но его версия 4 по умолчанию не сопоставлена ни с одним из существующих ключей. Таким образом, вы можете использовать любой из следующих подходов:
Я могу сопоставить инструмент сравнения 4 с уже существующим ключом,
bc3
который соответствует версии сравнения 3. У меня не было превосходной версии 3 на моем компьютере, поэтому мне было все равно. Если бы я хотел, я мог бы сопоставить его с любым из предварительно определенных ключей в приведенном выше списке, напримерexamdiff
.Если вы сопоставляете хорошо известную версию инструментов с соответствующим уже существующим / хорошо известным ключом, вам не нужно будет запускать вторую команду, поскольку их путь установки уже известен git .
Например, если бы я установил версию 3 для сравнения на моем компьютере, то для
.gitconfig
начала работы было бы достаточно иметь следующую конфигурацию в моем файле:Но если вы хотите изменить связанный с ним инструмент по умолчанию, то в конечном итоге вы упомянете
path
атрибут отдельно, чтобы git узнал путь, откуда должен запускаться исполняемый файл вашего нового инструмента. Вот запись, которую лисы запускают за пределами сравнения 4. Обратите внимание на путь exe:Самый чистый подход - полностью определить новый ключ для нового инструмента сравнения или новой версии известного инструмента. Как и в моем случае, я определил новый ключ,
bc4
чтобы его было легко запомнить. В таком случае вам нужно выполнить всего две команды, но ваша вторая команда не будет устанавливать путь к исполняемому файлу вашего нового инструмента. Вместо этого вы должны установитьcmd
атрибут для вашего нового инструмента, как показано ниже:Запуск вышеуказанных команд создает следующие записи в вашем
.gitconfig
файле:Я настоятельно рекомендую вам следовать подходу № 2, чтобы избежать путаницы в будущем.
источник
Добавление одного из блоков ниже помогает мне использовать KDiff3 для моей среды разработки Windows и Linux. Это делает для хорошего последовательного межплатформенного инструмента сравнения и слияния.
Linux
Windows
источник
trustExitCode = false
, что git спросит вас, было ли слияние успешным, а не полагается на то, что инструмент завершил работу с истинным или ложным статусом.Если вы хотите использовать несколько инструментов сравнения, добавьте псевдоним в .gitconfig
источник
--tool
вариант. СпасибоОбратитесь к Microsoft vscode-tips-and-tricks . Просто запустите эти команды в вашем терминале:
git config --global merge.tool code
Но сначала вам нужно добавить
code
команду в ваш путь.источник
В Windows нам нужно запустить
$git difftool --tool-help
команду, чтобы увидеть различные параметры, такие как:и мы можем добавить любой из них (например, Winmerge), как
Для настройки notepad ++ для просмотра файлов перед фиксацией:
и использование
$ git commit
откроет информацию о коммите в notepad ++источник