Reprodukuję moją odpowiedź z tego wątku, która była bardziej specyficzna dla ustawienia nieporównywalnego jako narzędzia porównywania dla Git. Wszystkie szczegóły, które udostępniłem, są równie przydatne dla każdego narzędzia porównywania w ogóle, więc udostępnij je tutaj:
Pierwsze polecenie, które uruchamiamy, jest następujące:
git config --global diff.tool bc3
Powyższe polecenie tworzy poniższy wpis w .gitconfig
znalezionym w %userprofile%
katalogu:
[diff]
tool = bc3
Następnie uruchamiasz poniższe polecenie (uruchomienie tego polecenia jest w tym konkretnym przypadku zbędne i jest wymagane tylko w niektórych wyspecjalizowanych przypadkach. Dowiesz się o tym za chwilę ):
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"
Powyższe polecenie tworzy poniższy wpis w .gitconfig
pliku:
[difftool "bc3"]
path = c:/program files/Beyond Compare 3/bcomp.exe
Najważniejsze jest to, aby wiedzieć bc3
. Jest to dobrze znany klucz do gita odpowiadający konkretnej wersji dobrze znanych narzędzi porównawczych dostępnych na rynku ( bc3
odpowiada trzeciej wersji narzędzia Beyond Compare). Jeśli chcesz zobaczyć wszystkie predefiniowane klawisze, po prostu uruchom git difftool --tool-help
polecenie na git bash. Wraca poniższa lista:
vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff
Możesz użyć dowolnego z powyższych kluczy lub zdefiniować własny klucz niestandardowy. Jeśli chcesz skonfigurować nowe narzędzie (lub nowo wydaną wersję dobrze znanego narzędzia), które nie jest mapowane na żaden z wymienionych powyżej kluczy, możesz go zmapować na dowolny z kluczy wymienionych powyżej lub na nowy własny klucz.
Co jeśli musisz skonfigurować narzędzie porównawcze, które jest
LUB
- Pojawiła się nowa wersja istniejącego, dobrze znanego narzędzia, która nie jest mapowana na żadne predefiniowane klucze w git ?
Podobnie jak w moim przypadku, zainstalowałem nieporównywalne 4. Poza porównaniem jest dobrze znanym narzędziem git, ale jego wersja 4 nie jest domyślnie mapowana do żadnego z istniejących kluczy. Możesz więc zastosować dowolne z poniższych podejść:
Mogę zmapować narzędzie poza porównywarką 4 do już istniejącego klucza, bc3
który odpowiada wersji nieporównywalnej 3. Nie miałem innej wersji 3 na moim komputerze, więc nie obchodziło mnie to. Gdybym chciał, mógłbym zmapować go do dowolnego z predefiniowanych kluczy z powyższej listy również np examdiff
.
Jeśli mapujesz dobrze znaną wersję narzędzi do odpowiedniego już istniejącego / dobrze znanego klucza, nie musisz uruchamiać drugiego polecenia, ponieważ ich ścieżka instalacji jest już znana gitowi .
Na przykład gdybym zainstalował na moim komputerze wersję inną niż wersja 3, posiadanie poniższej konfiguracji w moim .gitconfig
pliku byłoby wystarczające, aby zacząć:
[diff]
tool = bc3
Ale jeśli chcesz zmienić domyślne powiązane narzędzie, w końcu wymieniasz path
atrybut osobno, aby git poznał ścieżkę, z której ma zostać uruchomiony plik exe nowego narzędzia. Oto wpis, który foxes git ma zamiast tego uruchomić poza porównaniem 4. Zwróć uwagę na ścieżkę exe:
[difftool "bc3"]
path = c:/program files/Beyond Compare 4/bcomp.exe
Najczystszym podejściem jest zdefiniowanie nowego klucza dla nowego narzędzia porównawczego lub nowej wersji dobrze znanego narzędzia. Tak jak w moim przypadku zdefiniowałem nowy klucz bc4
, aby był łatwy do zapamiętania. W takim przypadku musisz uruchomić w sumie dwa polecenia, ale drugie polecenie nie będzie ustawiać ścieżki do pliku wykonywalnego twojego nowego narzędzia. Zamiast tego musisz ustawić cmd
atrybut dla swojego nowego narzędzia, jak pokazano poniżej:
git config --global diff.tool bc4
git config --global difftool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"\$LOCAL\" -d \"\$REMOTE\""
Uruchomienie powyższych poleceń tworzy poniższe wpisy w twoim .gitconfig
pliku:
[diff]
tool = bc4
[difftool "bc4"]
cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"
Zdecydowanie polecam zastosować podejście nr 2, aby uniknąć zamieszania w przyszłości.