Ostatnio korzystałem z GitExtension 2.46, ale wersja Git, która ma to samo, to 1.9.4.msysgit.2. Chcąc używać tylko poleceń Git, odinstalowałem GitExtension i zainstalowałem najnowszą dostępną wersję Git i KDiff3 .
Kiedy scalam i mam konflikty, uruchamiam następujące polecenie:
$ git mergetool
Następnie otrzymuję wiadomość:
Narzędzie do scalania kdiff3 nie jest dostępne jako „kdiff3”.
Myślę, że musi to być ścieżka KDiff3.
Środowisko
- System operacyjny: Windows 10
- Git 2.6.1. Okna 1
- KDiff3 0.9.98 (64-bitowy)
Pytania:
Co muszę skonfigurować w pliku .gitconfig, aby polecenie
$ git mergetool
otworzyło KDiff3 GUI w wersjach LOCAL , REMOTE , BASE i MERGED pliku będącego w konflikcie?Jak skonfigurować go, aby używał narzędzia różnicowego?
Odpowiedzi:
Witryny te były bardzo pomocne, prawie, Fooletool i Difftool . Użyłem konfiguracji globalnej, ale może być używana przez repozytorium bez problemów. Wystarczy wykonać następujące polecenia:
Użycie tej
trustExitCode
opcji zależy od tego, co chcesz zrobić, gdy narzędzie diff powróci. Z dokumentacji :źródło
git config --global --add diff.guitool kdiff3
na następującą:git config --global --add diff.tool kdiff3
--add
doda drugi lub trzeci wpis, gdy zostanie wywołany wiele razy. Trudno to później naprawić, ponieważ nie można go po prostu usunąć--remove
. Samo ustawienie wartości bez--add
powinno być w porządku.Aby rozszerzyć odpowiedź @ Josepha :
Po zastosowaniu tych poleceń Twój
.gitconfig
plik globalny będzie miał następujące wiersze (aby przyspieszyć proces, możesz po prostu skopiować je do pliku) :źródło
.gitconfig
Plik, który edytowałem, nie był tym, który był używany. Zobacz stackoverflow.com/questions/2114111/... w celu zidentyfikowania ładowanego. (2) Nie mieszaj i nie dopasowujcmd =
orazpath =
w gitconfig, TL; DR: usuń cmd i po prostu użyj ścieżkiDla użytkowników komputerów Mac
Oto zaakceptowana odpowiedź @ Josepha, ale z domyślną lokalizacją ścieżki instalacji dla komputerów Mac
kdiff3
(Pamiętaj, że możesz to skopiować i wkleić i uruchomić za jednym razem)
źródło
--add
ponieważ może to spowodować 2 wpisy konfiguracji, jeśli uruchomisz polecenie dwukrotnie. Sprzątanie to bałagan, ponieważ nie można już usunąć pojedynczego wpisu. Zobacz git-scm.com/docs/git-config : „Do opcji można dodać wiele linii”Problem polega na tym, że Git nie może znaleźć KDiff3 w% PATH%.
W typowej instalacji Unix wszystkie pliki wykonywalne znajdują się w wielu znanych miejscach (
/bin/
,/usr/bin/
,/usr/local/bin/
, itd), i można wywołać program po prostu wpisując jego nazwę w procesorze powłoki (npcmd.exe
:)).W systemie Microsoft Windows, programy są zazwyczaj instalowane w wydzielonych ścieżek, więc nie można po prostu wpisać
kdiff3
wcmd
sesji i dostać KDiff3 uruchomiony.Trudne rozwiązanie: powinieneś powiedzieć Gitowi, gdzie znaleźć KDiff3, podając pełną ścieżkę do
kdiff3.exe
. Niestety, Git nie lubi spacji w specyfikacji ścieżki w swojej konfiguracji, więc ostatnim razem, gdy tego potrzebowałem, skończyłem z tymi starożytnymi „C: \ Progra ~ 1 ... \ kdiff3.exe”, jakby było późno 1990s :)Proste rozwiązanie: Edytuj ustawienia komputera i dołącz katalog z kdiff3.exe do% PATH%. Następnie sprawdź, czy możesz wywołać go z cmd.exe według jego nazwy, a następnie uruchom Git.
źródło
Musiałem dodać parametry wiersza poleceń, inaczej KDiff3 otworzy się tylko bez plików i poprosi mnie o bazę, lokalną i zdalną. Użyłem wersji dostarczonej z TortoiseHg .
Dodatkowo musiałem użyć starych, dobrych nazw plików DOS 8.3.
Jednak teraz działa poprawnie.
źródło
Aby zmienić Kris ' odpowiedź , zaczynając Git 2.20 (Q4 2018), właściwego dla komendy
git mergetool
będzieJest tak, ponieważ „
git mergetool
” nauczył się korzystać z--[no-]gui
opcji „ ”, podobnie jak „git difftool
”.Zobacz commit c217b93 , commit 57ba181 , commit 063f2bd (24 paź 2018) autor: Denton Liu (
Denton-L
) .(Połączone przez Junio C Hamano -
gitster
- w commit 87c15d1 , 30 października 2018)źródło
(Próbując dowiedzieć się, jak korzystać z kdiff3 z WSL git, skończyłem tutaj i dostałem ostatnie kawałki, więc opublikuję moje rozwiązanie dla każdego, kto również natknie się tutaj, próbując znaleźć tę odpowiedź)
Jak używać kdiff3 jako narzędzia porównywania / scalania dla WSL git
Dzięki aktualizacji Windows 1903 jest to o wiele łatwiejsze; wystarczy użyć wslpath i nie ma potrzeby udostępniania TMP z Windows do WSL, ponieważ strona Windows ma teraz dostęp do systemu plików WSL poprzez \ wsl $:
Przed aktualizacją systemu Windows 1903
Kroki korzystania z kdiff3 zainstalowanego w systemie Windows 10 jako narzędzia porównywania / scalania git w WSL:
źródło