Используйте 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 по умолчанию не сопоставлена ни с одним из существующих ключей. Таким образом, вы можете следовать любому из следующих подходов:
Я могу сопоставить инструмент сравнения 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
Самый чистый подход - полностью определить новый ключ для нового инструмента сравнения или новой версии известного инструмента. Как и в моем случае, я определил новый ключ
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.
c
Windows диск
Настройка инструмента сравнения
Для инструмента 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
а также
$LOCAL
vars, предоставляемые git во время выполнения. Обратите внимание, что мне нужно преобразовать текущие пути Linux в пути Windows.
Теперь все настроено. В следующий раз, когда вы бежите
git difftool
или же
git mergetool
Будет запущен Beyond Compare для Windows.