Próbowałem msysGit i Git na Cygwin. Oba działają same w sobie i oba działają doskonale gitk i git-gui.
Teraz jak do diabła mam skonfigurować narzędzie do łączenia? (Vimdiff działa na Cygwin, ale najlepiej chciałbym czegoś nieco bardziej przyjaznego dla niektórych z naszych kochających Windows współpracowników.)
Odpowiedzi:
Aby śledzić odpowiedź Charlesa Baileya, oto moja konfiguracja git, która używa p4merge (darmowego narzędzia do łączenia na trzy platformy); przetestowany na instalacji msys Git (Windows):
lub z powłoki Windows cmd.exe druga linia staje się:
Zmiany (w stosunku do Charlesa Baileya):
Pobierz: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDYCJA (luty 2014)
Jak zauważył @Gregory Pakosz , najnowszy msys git teraz „natywnie” obsługuje p4merge (testowany na 1.8.5.2.msysgit.0 ).
Możesz wyświetlić listę obsługiwanych narzędzi, uruchamiając:
Powinieneś zobaczyć p4merge na dostępnej lub prawidłowej liście. Jeśli nie, zaktualizuj swój git.
Jeśli p4merge został wymieniony jako dostępny , znajduje się w twojej ŚCIEŻCE i musisz tylko ustawić merge.tool :
Jeśli została ona uznana za ważny , trzeba określić mergetool.p4merge.path oprócz merge.tool :
~
powinien rozwinąć się do katalogu domowego bieżącego użytkownika (więc teoretycznie powinna to być ścieżka~/AppData/Local/Perforce/p4merge.exe
), nie działało to dla mnie$LOCALAPPDATA/Perforce/p4merge.exe
), Git nie wydaje się rozszerzać zmiennych środowiskowych dla ścieżek (jeśli wiesz, jak to zrobić, daj mi znać lub zaktualizuj tę odpowiedź)źródło
mergetool.p4merge.cmd
nie będzie działać, ponieważ Git zaczął próbować obsługiwać p4merge, patrzlibexec/git-core/git-mergetool--lib
. zamiast tego używa bezpośredniomergetool.p4merge.path
cmd = \""c:/Program Files/TortoiseSVN/bin/TortoiseMerge.exe"\" -base:"$BASE" -theirs:"$REMOTE" -mine:"$LOCAL" -merged:"$MERGED"
git config --global mergetool.p4merge.cmd '"C:\\Program Files\\Perforce\\p4merge" $BASE $LOCAL $REMOTE $MERGED'
na komputerze z systemem Windows 7ustawienie scaletool.p4merge.cmd nie będzie już działać, odkąd Git zaczął próbować obsługiwać p4merge, patrz libexec / git-core / git-mergetool--lib. więc musimy tylko określić ścieżkę scalania dla git, na przykład p4merge:
Wtedy to zadziała.
źródło
Używam Portable Git na WinXP (działa uczta!) I potrzebowałem rozwiązać konflikt, który pojawił się podczas rozgałęziania. Ze wszystkich sprawdzonych przeze mnie GUI, KDiff3 okazał się najbardziej przejrzysty w użyciu.
Ale w tym wpisie na blogu znalazłem instrukcje, których potrzebowałem, aby działał w systemie Windows , instrukcje, które nieco różnią się od innych podejść wymienionych tutaj. Zasadniczo sprowadzało się to do dodania następujących wierszy do mojego
.gitconfig
pliku:Teraz ładnie działa!
źródło
path = C:\\Program Files (x86)\\KDiff3\\kdiff3.exe
(zauważ podwójne ukośniki)Pod Cygwin tylko rzeczą, która pracowała dla mnie jest następująca:
Chciałbym również wyłączyć komunikat zachęty do difftool:
źródło
git mergetool
jest w pełni konfigurowalny, więc możesz wybrać swoje ulubione narzędzie.Pełna dokumentacja znajduje się tutaj: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html
W skrócie, możesz ustawić domyślną narzędzie do łączenia, ustawiając zmienną config użytkownika
merge.tool
.Jeśli narzędzie do scalania jest jednym z obsługiwanych przez niego natywnie, wystarczy ustawić
mergetool.<tool>.path
pełną ścieżkę do narzędzia (zastąp<tool>
to, co skonfigurowałeśmerge.tool
.W przeciwnym razie można ustawić
mergetool.<tool>.cmd
odrobinę powłoki, która będzie sprawdzana w czasie wykonywania, przy zmiennych zmiennych powłoki$BASE, $LOCAL, $REMOTE, $MERGED
ustawionych na odpowiednie pliki. Musisz być ostrożny przy ucieczce, czy bezpośrednio edytujesz plik konfiguracyjny, czy ustawiasz zmienną za pomocągit config
polecenia.Coś takiego powinno nadać posmak tego, co możesz zrobić („mymerge” to fikcyjne narzędzie).
Po skonfigurowaniu ulubionego narzędzia do scalania wystarczy uruchomić
git mergetool
za każdym razem, gdy występują konflikty do rozwiązania.Narzędzie p4merge firmy Perforce jest całkiem dobrym samodzielnym narzędziem do scalania.
źródło
Dla porównania poza w Windows 7
źródło
Wygląda na to, że nowsze wersje git bezpośrednio obsługują p4merge, więc
powinno być wszystkim, czego potrzebujesz, jeśli p4merge.exe jest na twojej drodze. Nie ma potrzeby konfigurowania cmd ani ścieżki.
źródło
Jak już odpowiedziano tutaj (i tu i tutaj ), połączenie to polecenie do skonfigurowania. Dla przyjemnej graficznej nakładki polecam kdiff3 (GPL).
źródło
Musiałem zrezygnować z dodatkowego cytowania za pomocą msysGit na Windows 7, nie jestem pewien, dlaczego.
źródło
Jeśli robisz to przez cygwin, być może będziesz musiał użyć cygpath:
źródło
Bah, to w końcu zadziałało dla mnie (Windows 7 + Cygwin + TortoiseMerge):
W .git / config:
Dzięki poprzednim postom za wskazówkę dotyczącą korzystania z cygpath!
źródło
korzystam z aplikacji o nazwie WinMerge ( http://winmerge.org/ ) informacji z ich instrukcji ( http://manual.winmerge.org/CommandLine.html )
jest to skrypt bash, którego używam z
mergetool
dyrektywy poprzez.gitconfig
w zasadzie bash bierze pod uwagę, kiedy wynik różnicy w pustym pliku i tworzy nowy plik tymczasowy we właściwej lokalizacji.
źródło
Znalazłem dwa sposoby skonfigurowania „ SourceGear DiffMerge ” jako difftool i scaletool w github Windows.
Następujące polecenia w oknie wiersza polecenia zaktualizują plik .gitconfig, aby skonfigurować GIT przy użyciu DiffMerge:
[ LUB ]
Dodaj następujące wiersze do .gitconfig. Ten plik powinien znajdować się w katalogu domowym w C: \ Users \ UserName:
źródło
Możesz także dodać te opcje:
Nie wiem też dlaczego, ale cytowanie i cięcie z odpowiedzi Milana Gardiana zepsuło mi wszystko.
źródło
Jeśli ktoś chce użyć gvim jako narzędzia do porównywania w TortoiseGit, to jest to, co musisz wprowadzić w polu tekstowym ścieżki do zewnętrznego narzędzia do porównywania:
źródło
Dla konfiguracji IntelliJ IDEA (Community Edition) 3-drożnej git scalania w środowisku Windows (
~/.gitconfig
)Cygwin
Msys
~ / Winpath.sh służy do konwersji ścieżek do systemu Windows na msys i jest pobierany z pytania o konwersję ścieżki msys na stackoverflow
źródło
Aby skonfigurować p4merge, zainstalowany przy użyciu Chocolatey w systemie Windows zarówno do scalania, jak i różnicowania, spójrz tutaj: https://gist.github.com/CamW/88e95ea8d9f0786d746a
źródło
Jeśli masz problemy z otwarciem p4merge z SourceTree, poszukaj lokalnego pliku konfiguracyjnego o nazwie config w MyRepo.git i usuń dowolną konfigurację scalania. W moim przypadku próbowałem otworzyć Meld, który właśnie odinstalowałem
źródło