Настройка инструмента с дифф.gitconfig хранит настройки



как настроить Git для использования другого инструмента для различения с помощью .файл gitconfig?



у меня это в моем .gitconfig:



[diff]
tool = git-chdiff #also tried /bin/git-chdiff


Он не работает; он просто открывает обычную командную строку diff. Когда я делаю



export GIT_EXTERNAL_DIFF=git-chdiff


затем git diff откроет внешний инструмент diffing (поэтому я знаю, что скрипт внешнего инструмента diff отлично работает). У меня что-то не так с моим .конфигурация gitconfig для инструмента diff?

533   6  
git

6 ответов:

Git предлагает ряд difftools предварительно настроенных "из коробки" (kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, diffuse, opendiff, p4merge и araxis), а также позволяет указать свой собственный. Чтобы использовать один из предварительно настроенных difftools (например, "vimdiff"), добавьте следующие строки в ~/.gitconfig:

[diff]
    tool = vimdiff

теперь вы сможете запустить "git difftool" и использовать свой инструмент по выбору.

указание собственного difftool, on с другой стороны, требуется немного больше работы, см. как просмотреть вывод "git diff" с помощью моего предпочтительного инструмента/ средства просмотра diff?

дополнительный способ сделать это (из командной строки):

git config --global diff.tool tkdiff
git config --global merge.tool tkdiff
git config --global --add difftool.prompt false

первые две строки установят difftool и mergetool в tkdiff- изменить в соответствии с вашими предпочтениями. Третья строка отключает раздражающее приглашение, поэтому всякий раз, когда вы нажимаете git difftool он автоматически запустит difftool.

другие сделали 99% ответа на это, но есть один шаг налево. (Мой ответ будет исходить из OS X, поэтому вам придется соответствующим образом изменить пути к файлам.)

вы вносите эти изменения в свой ~/.gitconfig:

[diff]
    tool = diffmerge
[difftool "diffmerge"]
    cmd = /Applications/Diffmerge.app/Contents/MacOS/diffmerge $LOCAL $REMOTE

это исправит инструмент diff. Вы также можете исправить это без редактирования ~/.gitconfig непосредственно вводя эти команды из терминала:

git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/Applications/DiffMerge.appContents/MacOS/diffmerge $LOCAL $REMOTE"

1%, что все остальные не смогли упомянуть, когда вы используете это, вы не можете просто запустить git diff myfile.txt; вам нужно запустить git difftool myfile.txt.

вот часть моего ~/.gitconfig, где я настраиваю инструменты diff и merge. Мне нравится diffmerge от SourceGear. (На самом деле мне это очень нравится).

[merge]
        tool = diffmerge
[mergetool "diffmerge"]
        cmd = "diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$(if test -f \"$BASE\"; then echo \"$BASE\"; else echo \"$LOCAL\"; fi)\" \"$REMOTE\""
        trustExitCode = false
[diff]
        tool = diffmerge
[difftool "diffmerge"]
        cmd = diffmerge \"$LOCAL\" \"$REMOTE\"

Итак, вы видите, вы определяете инструмент с именем "diffmerge" в [difftool "diffmerge"] линии. Затем я устанавливаю инструмент "diffmerge" по умолчанию в .

у меня, очевидно, есть команда "diffmerge" на моем пути, здесь. В противном случае мне нужно будет дать полный путь к исполняемому файлу.

добавить один из блоков ниже работает для меня, чтобы использовать KDiff3 для моих сред разработки Windows и Linux. Это делает для хорошего последовательного кросс-платформенного инструмента diff и merge.

Linux

[difftool "kdiff3"]
    path = /usr/bin/kdiff3
    trustExitCode = false
[difftool]
    prompt = false
[diff]
    tool = kdiff3
[mergetool "kdiff3"]
    path = /usr/bin/kdiff3
    trustExitCode = false
[mergetool]
    keepBackup = false
[merge]
    tool = kdiff3

Windows

[difftool "kdiff3"]
    path = C:/Progra~1/KDiff3/kdiff3.exe
    trustExitCode = false
[difftool]
    prompt = false
[diff]
    tool = kdiff3
[mergetool "kdiff3"]
    path = C:/Progra~1/KDiff3/kdiff3.exe
    trustExitCode = false
[mergetool]
    keepBackup = false
[merge]
    tool = kdiff3

воспроизведение мой ответ этой поток, который был более специфичен для настройки вне сравнения как инструмент diff для Git. Все детали, которые я поделился, одинаково полезны для любого инструмента diff в целом, поэтому поделитесь им здесь:

первая команда, которую мы запускаем, как показано ниже:

git config --global diff.tool bc3

команда выше создает ниже запись в .gitconfig нашли в для вашего нового инструмента, как показано ниже:

git config --global diff.tool bc4

git config --global difftool.bc4.cmd "\"C:\Program Files\Beyond Compare 4\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\""

запуск выше команды создает ниже записи в вашем .gitconfig file:

[diff]
tool = bc4
[difftool "bc4"]
cmd = \"C:\Program Files\Beyond Compare 4\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"

я настоятельно рекомендую вам следовать подходу № 2, чтобы избежать путаницы для себя в будущем.

Comments

    Ничего не найдено.