Используйте BeyondCompare, чтобы увидеть разницу между файлами в GIT

Прежде чем зафиксировать свои изменения, я хочу увидеть разницу с помощью BeyondCompare в GIT. Как я могу настроить BeyondCompare, чтобы увидеть разницу в моих файлах.

Я посмотрел на эту ссылку, но это не помогло.

BeyondCompare устанавливается в этом месте в моей системе: C:\program files\Beyond Compare\BCompare.exe

Я выполнил следующие две команды:

 git config --global merge.tool bc

git config --global mergetool.bc.path "C:\program files\Beyond Compare\BCompare.exe"

Я использую GIT на Windows 7.

Спасибо!!

5 ответов

Решение

Эта ссылка рассказывает, как настроить BeyondComapre в качестве инструмента сравнения в git.

git config --global diff.tool bc3
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"

Чтобы запустить diff, используя Beyond Compare, используйте команду "git difftool foofile.txt".

Я просто подробнее расскажу о принятом ответе @SharpCoder.

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

git config --global diff.tool bc3

Приведенная выше команда создает следующую запись в .gitconfig нашел в %userprofile% каталог:

[diff]
    tool = bc3

Затем вы запускаете команду ниже (Выполнение этой команды является избыточным в данном конкретном случае и требуется только в некоторых специализированных случаях. Вы узнаете об этом в ближайшее время):

git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"

Команда выше создает запись ниже .gitconfig файл:

[difftool "bc3"]
    path = c:/program files/Beyond Compare 3/bcomp.exe

Здесь важно знать bc3, Это хорошо известный ключ для git, соответствующий определенной версии известных инструментов сравнения, доступных на рынке (bc3 соответствует 3-й версии инструмента Beyond Compare). Если вы хотите увидеть все предопределенные ключи, просто запустите git difftool --tool-help команда на git bash. Это возвращает ниже список:

vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff

Вы можете использовать любой из вышеперечисленных ключей или определить свой собственный ключ. Если вы хотите полностью настроить новый инструмент (или недавно выпущенную версию известного инструмента), который не сопоставляется ни с одним из перечисленных выше ключей, вы можете сопоставить его с любым из перечисленных выше ключей или с новым ваш собственный ключ.

Что делать, если вам нужно настроить инструмент сравнения, который

  • Абсолютно новый на рынке

ИЛИ ЖЕ

  • Выпущена новая версия существующего хорошо известного инструмента, который не сопоставлен ни с какими предопределенными ключами в git?

Как и в моем случае, я установил "вне сравнения 4". "Вне сравнения" - это хорошо известный инструмент для git, но его версия 4 по умолчанию не сопоставлена ​​ни с одним из существующих ключей. Таким образом, вы можете следовать любому из следующих подходов:

  1. Я могу сопоставить инструмент сравнения 4 с уже существующим ключом bc3 что соответствует вне всякого сравнения 3 версии. У меня не было превосходной версии 3 на моем компьютере, поэтому мне было все равно. Если бы я хотел, я мог бы сопоставить его с любым из предварительно определенных ключей в приведенном выше списке, например, examdiff,

    Если вы сопоставите хорошо известную версию инструментов с соответствующим уже существующим / хорошо известным ключом, вам не нужно будет запускать вторую команду, так как их путь установки уже известен git.

    Например, если я установил некоммерную версию 3 на свою коробку, то в моей конфигурации ниже .gitconfig файла было бы достаточно, чтобы начать работу:

    [diff]
    tool = bc3
    

    Но если вы хотите изменить связанный с ним инструмент по умолчанию, то в конечном итоге вы упомянули path Атрибут отдельно, чтобы git узнал путь, с которого должен запускаться исполняемый файл вашего нового инструмента. Вот запись, которую лисы запускают за пределами сравнения 4. Обратите внимание на путь exe:

    [difftool "bc3"]
    path = c:/program files/Beyond Compare 4/bcomp.exe
    
  2. Самый чистый подход - полностью определить новый ключ для нового инструмента сравнения или новой версии известного инструмента. Как и в моем случае, я определил новый ключ bc4 так что это легко запомнить. В таком случае вам нужно выполнить всего две команды, но ваша вторая команда не будет устанавливать путь к исполняемому файлу вашего нового инструмента. Вместо этого вы должны установить cmd атрибут для вашего нового инструмента, как показано ниже:

    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 файл:

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

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

Вне сравнения это Mergetool и инструмент сравнения. В любом случае, он у меня есть для обеих операций. Когда я хочу увидеть разницу между моим текущим состоянием и последним подтвержденным, я пишу

    git diff 

для быстрого вывода текста и небольших изменений и

   git difftool

для изменений в нескольких файлах. Также имейте в виду, что вы можете сделать git log, скопировать первую часть хеш-значения вашего коммита и сделать

   git difftool (commit1) (commit2)

и сравнить все файлы один за другим (очень продуктивно и полезно)

Указанная в этом вопросе инструкция сработала в прошлый раз, когда я ее пробовал, но я думаю, что вы должны запустить команды в git bash и заменить обратную косую черту на вашем пути прямой косой чертой.

git config --global merge.tool bc
git config --global mergetool.bc.path "C:/program files/Beyond Compare/BCompare.exe"

Если вы используете Windows с WSL , вы можете настроить git для использования инструментов сравнения и слияния Windows в обоих мирах (Linux и Windows).

Настройка для Windows тривиальна, но для Linux это не так. В моем случае я использую Beyond Compare 3 (установлен в Windows), и я настроил git как в Windows, так и в Linux, чтобы использовать его в качестве инструментов слияния и сравнения.

Я опишу, как я настроил свой файл в Linux. Я использую Ubuntu 20.04, но думаю, что и в других дистрибутивах должно быть похоже. К счастью, для инструмента слияния не требуется никаких дополнительных настроек.

Настройка инструмента слияния

Эта часть довольно проста, вам просто нужно добавить следующую конфигурацию в ваш файл:

      [merge]
    tool = bc
[mergetool]
    keepBackup = false
    trustExitCode = true
    prompt = false
[mergetool "bc"]
    path = /mnt/c/Program Files/Beyond Compare 4/bcomp.exe

Есть несколько дополнительных необязательных настроек, но вы можете просто использовать их, как я. Одна важная вещь, на которую следует обратить внимание, это путь к mergetool. В моем случае у меня установлен Beyond Compare. cWindows диск

Настройка инструмента сравнения

Для инструмента diff все немного сложнее и требует немного больше усилий. Первое, что вам нужно сделать, это создать отдельный исполняемый файл. Я не уверен, зачем это нужно, но git docs говорит об этом.

В моем случае я создал свой собственный исполняемый файл в \\wsl.localhost\Ubuntu\home\{your-user}\.local\bin\extDiffи я дал ему разрешения на выполнение chmod +x extDiff

Это его содержимое

      #bin/bash
"/mnt/c/Program Files/Beyond Compare 4/bcomp.exe" "$1" "$2"

Не хватает только обновления .gitconfigфайл

      [diff]
    tool = bc
[difftool]
    prompt = false
[difftool "bc"]
    cmd = /home/{your-user}/.local/bin/extDiff `wslpath -m "$REMOTE"`  `wslpath -m "$LOCAL"` 

wslpathэто программа, которая конвертирует пути linux в windows и наоборот. В этом случае я вызываю свой ранее определенный исполняемый файл, передавая $REMOTEа также $LOCALvars, предоставляемые git во время выполнения. Обратите внимание, что мне нужно преобразовать текущие пути Linux в пути Windows.

Теперь все настроено. В следующий раз, когда вы бежите git difftoolили же git mergetoolБудет запущен Beyond Compare для Windows.

Другие вопросы по тегам