Jakie jest najlepsze narzędzie do scalania wizualnego dla Git? [Zamknięte]

599

Jakie jest najlepsze narzędzie do przeglądania i edycji scalania w Git? Chciałbym uzyskać widok scalania w 3 kierunkach z „moje”, „ich” i „przodek” w osobnych panelach oraz czwarty panel „wyjściowy”.

Również instrukcje wywoływania wspomnianego narzędzia byłyby świetne. (Nadal nie wiem, jak uruchomić kdiff3 w taki sposób, aby nie dawał mi to błędu).

Mój system operacyjny to Ubuntu.

andy
źródło
15
„Ale teraz nie jest to dozwolone” tak, dlatego nienawidzę obecnie przepełnienia stosu. Bez tych pytań jest o wiele za sucho i nudno.
István Ujj-Mészáros
17
Czy istnieje witryna wymiany stosów, w której tego typu pytania są dozwolone? Jeśli nie, powinno być ...
fzzylogic
16
Wydaje się, że nadszedł czas na nowy przepełnienie stosu, w którym takie pytania są dozwolone. Najwyraźniej tyle osób stwierdziło, że takie pytania są cenne dla tak wielu osób, że zamknięcie ich jest głupotą. Myślę, że przesadziłeś z biurokracją. A może zrobisz ankietę na ten temat i zobaczysz, czego chcą Twoi „klienci”; P
Piotr Owsiak
9
Jest softwarerecs.stackexchange.com
Philipp Wendler
6
Problem: Softwarerecs jest bezużyteczny, ponieważ eksperci są tutaj, a nie tam.
reinierpost

Odpowiedzi:

337

Meld to bezpłatne, otwarte i wieloplatformowe narzędzie do porównywania / scalania (UNIX / Linux, OSX, Windows).

Oto jak zainstalować na:

20805
źródło
53
kogo obchodzi system operacyjny, z którego korzysta oryginalny autor ?, pytanie jest wystarczająco ogólne, aby zainteresować wszystkich, którzy go szukają. A różnica 3-kierunkowa polega na tym, że faktycznie widzisz 4 panele z testem; merge-base / local / remote / result
Evgeny
16
meldjest żmudny ze złożonymi różnicami, możliwość wybrania takich opcji chose b for all unresolved conflictsjest znacznie lepsza niż konieczność ręcznego klikania właściwej strzałki dla każdego przystojniaka meld. Również możliwość scalenia w konkretny plik wyjściowy zamiast edycji plików wejściowych w miejscu jest nieoceniona przy wycofywaniu się z nieudanych połączeń.
Mark Booth
3
@naxa Meld ma teraz instalator dla systemu Windows: code.google.com/p/meld-installer
Roman
6
kdiff3 pozwala zobaczyć 4 widoki, meld pozwala tylko 3 widoki. Meld nie jest prawdziwym narzędziem scalania, jest narzędziem różnicowym, ponieważ nie pokazuje widoku wersji podstawowej.
Akira Yamamoto
4
Meld jest okropny, szczególnie w przypadku fuzji. Nie ma opcji „automatycznego transferu sprzecznych ze sobą zmian”, co sprawia, że ​​każde połączenie jest strasznie bolesne.
Cerin
91

Możesz skonfigurować własne narzędzie scalania do użycia z „ git mergetool”.

Przykład:

  git config --global merge.tool p4merge
  git config --global mergetool.p4merge.cmd p4merge '$BASE $LOCAL $REMOTE $MERGED'
  git config --global mergetool.p4merge.trustExitCode false

A gdy już to robisz, możesz także ustawić go jako difftool dla „ git difftool”:

  git config --global diff.tool p4merge
  git config --global difftool.p4merge.cmd p4merge '$LOCAL $REMOTE'

Zauważ, że w Uniksie / Linuksie nie chcesz, $BASEaby powłoka była analizowana przez powłokę jako zmienna - powinna ona faktycznie pojawić się w pliku ~ / .gitconfig, aby to zadziałało.

Evgeny
źródło
10
Zauważ, że skoro p4merge jest (obecnie) jednym z oficjalnie obsługiwanych git scaletools, nie powinno być konieczne zrywanie narzędzia. Zmienna .cmd.
Matt Ball
2
Upewnij się, że używasz poprawnej oferty: stackoverflow.com/a/1217994/3543437
kayleeFrye_onDeck
64

Mój ulubiony Beyond Compare 3 ma funkcję scalania w wersji Pro . Zaletą tego połączenia jest to, że pozwala zobaczyć wszystkie 4 widoki: bazowy, lewy, prawy i scalony wynik. Jest nieco mniej wizualny niż P4V, ale o wiele bardziej niż WinDiff. To integruje się z wielu kontroli źródła i działa na Windows / Linux. Ma wiele funkcji, takich jak zaawansowane reguły, edycje, ręczne wyrównanie ...

Perforce Visual Client ( P4V ) to bezpłatne narzędzie, które zapewnia jeden z najbardziej jednoznacznych interfejsów do łączenia (patrz zrzuty ekranu ). Działa na wszystkich głównych platformach. Moje główne rozczarowanie tym narzędziem to rodzaj interfejsu „tylko do odczytu” . Nie można ręcznie edytować plików i nie można ręcznie wyrównać.

PS: P4Merge jest zawarty w P4V. Perforce stara się utrudnić zdobycie swojego narzędzia bez klienta.

SourceGear Diff / Merge może być moim drugim darmowym wyborem narzędzi. Sprawdź, czy scalono zrzut ekranu, a zobaczysz, że ma co najmniej 3 widoki.


Meld to nowsze bezpłatne narzędzie, które wolałbym SourceGear Diff / Merge : teraz działa również na większości platform (Windows / Linux / Mac) z wyraźną zaletą natywnej obsługi kontroli źródła, takiej jak Git . Dzięki temu możesz mieć nieco łatwiejszą historię różnic we wszystkich plikach. Widok scalania (patrz zrzut ekranu ) ma tylko 3 panele, podobnie jak SourceGear Diff / Merge . To sprawia, że ​​scalanie jest nieco trudniejsze w skomplikowanych przypadkach.

PS: Jeśli jedno narzędzie obsługuje scalanie 5 widoków , byłoby to naprawdę niesamowite, ponieważ jeśli zdecydujesz się zatwierdzić w Git, naprawdę nie masz jednej bazy, ale dwie. Dwie podstawowe, dwie zmiany i jedna wynikowa fuzja.

Wernight
źródło
7
Perforce Scalanie jest świetne. Posiada 4-panelowe narzędzie do scalania, które naprawdę pomaga: Pozdrawiam, Ich, Wspólna baza, Nowe
Gal
4
P4 jest również używany przez Google .
Wernight
5
Możesz zainstalować niestandardowo tylko P4Merge bez reszty perforacji.
Dirk Bester
6
Najnowsza wersja p4merge nie ma interfejsu „tylko do odczytu”. Możesz edytować scalony plik w dolnym okienku.
Ian Ni-Lewis
1
To naprawdę świetna odpowiedź i dyskusja. Dziękuję za podzielenie się!
Mark Good
44

Słyszę dobre rzeczy o kdiff3.

kryger
źródło
4
+1: kdiff3 jest znacznie lepszy niż meld, a także jest natywnie obsługiwany przez git.
Mark Booth
3
kdiff3ma znacznie więcej funkcji, ale meldma lepszy interfejs użytkownika. Moim zdaniem meldlepiej nadaje się do łatwych połączeń, w których meldwystarczają dostępne funkcje . Pamiętaj też, aby spróbować diffuse.
Mikko Rantalainen,
kdiff3 pozwala zobaczyć 4 widoki, meld pozwala tylko 3 widoki. Meld nie jest prawdziwym narzędziem scalania, jest narzędziem różnicowym, ponieważ nie pokazuje widoku wersji podstawowej.
Akira Yamamoto
43

Moje ulubione narzędzie do scalania wizualnego to SourceGear DiffMerge

  • To jest darmowe.
  • Wiele platform (Windows, OS X i Linux).
  • Czysty interfejs użytkownika
  • Wszystkie funkcje różnicowe, których można się spodziewać (Diff, Merge, Folder Diff).
  • Interfejs linii komend.
  • Użyteczne skróty klawiaturowe.

Interfejs użytkownika

Łukasz
źródło
3
jak skonfigurować go do pracy z git?
Ryan Lundy
2
@Kyralessa Zobacz stackoverflow.com/questions/255202/...
Luke
2
Dziękujemy za zapoznanie się ze mną !! : D To narzędzie jest czyste i zajmuje mniej czasu na instalację i pracę niż meld. Pół godziny próbuję zainstalować meld. Ale ten zrobiłem w 5 minut !!
om39a
2
Uwaga: diffmerge nie wydaje się mieć funkcji łączenia 3-kierunkowego. Z tego powodu
porzucam
To miłe narzędzie, które umożliwia porównywanie folderów. Problem jest trochę powolny (MacBookPro 15 2014, MacOS Catalina)
emKaroly
33

vimdiff

Kiedy nauczysz się vima (i IMHO powinieneś), vimdiff jest tylko jedną piękną, małą ortogonalną koncepcją do nauki. Aby uzyskać pomoc online w vimie:

:help vimdiff 

To pytanie obejmuje sposób korzystania z niego: Jak użyć vimdiff do rozwiązania konfliktu?

wprowadź opis zdjęcia tutaj

Jeśli utkniesz w ciemnych czasach używania myszy, a łączone pliki nie są zbyt duże, polecam meld.

Andrew Wagner
źródło
<3 vimdiff, nie mogę wymyślić, jak przekonać svn, aby pozwolił mi użyć go jako narzędzia „scalania”.
klokop
gvimdiff działa również dobrze w tym celu.
new123456
2
Korzystanie z wtyczki Fugitive sprawia, że ​​jest to jeszcze łatwiejsze! vimcasts.org/episodes/…
Erik Westrup
Gdyby tylko istniał sposób, aby wyraźnie zobaczyć różnicę między lokalnym / bazowym a bazowym / zdalnym.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功 法轮功
24

Możesz wypróbować P4Merge .

Wizualizuj różnice między wersjami plików za pomocą P4Merge. Rozwiązuj konflikty wynikające z równoległego lub równoległego programowania za pomocą kodowania kolorami.

Funkcje obejmują:

  • Podświetl i edytuj różnice w plikach tekstowych
  • Wybierz, aby uwzględnić lub zignorować zakończenia linii lub białe spacje
  • Rozpoznawanie konwencji zakończenia linii dla Windows (CRLF), Mac (CR) i Unix (LF)
  • Użyj parametrów wiersza polecenia i uruchom z aplikacji innych niż Perforce
  • Wyświetlaj numery wierszy podczas porównywania i scalania plików
  • Wyklucz pliki, które są zmodyfikowane, unikalne lub niezmienione
  • Filtruj pliki według nazwy lub rozszerzenia
  • Organizuj zmodyfikowane zasoby w znanej hierarchii plików / folderów
  • Porównaj JPEG, GIF, TIFF, BMP i inne formaty plików
  • Rozszerz używając Qt API
  • Nakładaj obrazy lub wyświetlaj obok siebie
  • Podkreśl różnice na nakładanych obrazach
Ron
źródło
najlepszy, jaki do tej pory widziałem. łatwo rozwiązać konflikty, wybierając zmianę z listy widoku
trójstronnego
Nowy link: perforce.com/downloads/helix#product-10
Brill Pappin
Naprawiono link perforce.com/downloads/helix#clients
Al-Mothafar
Zacząłem go używać dzisiaj i jest dość intuicyjny.
Zasoby
22

IntelliJ IDEA ma zaawansowane narzędzie do rozwiązywania konfliktów scalania z magiczną różdżką Resolve, co znacznie upraszcza scalanie:

Źródło: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

niutech
źródło
2
Narzędzie scalania pomysłu jest po prostu genialne. jest nawet dostępny w wydaniu społecznościowym Idea, co oznacza, że ​​możesz go używać za darmo jako zaawansowane narzędzie do scalania - właśnie to robię (w większości przypadków używam VSCode tam, gdzie pracuję i używam Idea do trudnych przypadków scalania). VSCode wykonuje też całkiem niezłą robotę, a czasem nawet lepszą niż Idea. ale w trudnych przypadkach układ 3 paneli jest najlepszym narzędziem, jakie kiedykolwiek widziałem
godblessstrawberry,
Nienawidzę tego, że pasek przewijania „podsumowanie pliku” NIE są razem! Głównym powodem, dla którego lubię rozpraszać!
Anthony
16

Diffuse jest moim ulubionym, ale oczywiście jestem stronniczy. :-) Jest bardzo łatwy w użyciu:

$ diffuse "mine" "output" "theirs"

Diffuse to małe i proste narzędzie do scalania tekstu napisane w języku Python. Dzięki Diffuse możesz łatwo łączyć, edytować i przeglądać zmiany w kodzie. Diffuse to darmowe oprogramowanie.

kenorb
źródło
2
Naprawdę lubię rozproszone i nie jestem stronniczy.
jturcotte
2
@Derrick Moser: diffusewygląda bardzo ładnie. Właśnie tego spróbowałem i lepiej się różniło niż kdiff3. Ale staram się go używać git mergetooli otwiera 4 pliki obok siebie (lokalny, wynik scalania, zdalny, podstawowy), a mój ekran nie jest na to wystarczająco szeroki. Musiałem zrobić dużo poziomego przewijania. kdiff3 pokazuje tylko 3 obok siebie, a wynik w dolnej połowie okna.
yairchu
diffuse ma kilka dodatkowych opcji scalania w porównaniu do meld (pozwala połączyć obie wersje zamiast wybierać jedną z nich).
Audrius Meskauskas,
diffuse działa od razu w systemie Windows, do porównywania 2 folderów, z repozytorium CVS, z repozytorium Git, łącząc konflikty scalania git. Rozproszone pliki diff otwierają się w kartach w jednym oknie. Przełączyłem się na rozproszone (po użyciu edaca emacsa (zbyt wiele funkcji, przydatne w latach 90.)> vimdiff (skomplikowane naciśnięcia klawiszy)> p4merge> araxis (własność)> meld (zbyt wolny), tkdiff (tylko cvs)> kdiff3 (dobry , dobre wyrażenia regularne ignorują funkcje)> winmerge (dobry)> rozproszony (szybki, przenośny, działa zgodnie z oczekiwaniami)) przy pierwszej próbie rozproszenia.
mosh
Jak zmienić język GUI w Diffuse?
zach
14

Araxis Merge http://www.araxis.com/merge Używam go w systemie Mac OS X, ale używałem go w systemie Windows ... nie jest bezpłatny ... ale ma kilka fajnych funkcji ... ładniejszy na Windows.

Clintm
źródło
9

Możesz zmienić narzędzie używane przez git scaletool, przekazując git mergetool -t=<tool>lub --tool=<tool>. Aby zmienić domyślny (z vimdiff) użyj git config merge.tool <tool>.

użytkownik35149
źródło
6

W przypadku scalania git możesz spróbować:

  • DiffMerge do wizualnego porównywania i scalania plików w systemach Windows, OS X i Linux.

    DiffMerge

  • Meld , to wizualne narzędzie do porównywania i scalania.

    Meld to wizualne narzędzie do porównywania i scalania

  • KDiff3 , program do porównywania i scalania), który porównuje lub łączy 2 lub 3 pliki / katalogi do wprowadzania tekstu.
  • opendiff(część Xcode Tools na MacOS), narzędzie, które uruchamia aplikację FileMerge od terminala graficznego porównywania plików i katalogów, w tym linii poleceń scalania .
kenorb
źródło
2
git config --global merge.tool opendiffpracował dla mnie najlepiej
James Matthew Mudgett
5

Wypróbowałem wiele narzędzi wymienionych tutaj i żadne z nich nie było dokładnie tym, czego szukam.

Osobiście uważam, że Atom jest doskonałym narzędziem do wizualizacji różnic i rozwiązywania konfliktów / łączenia.

Jeśli chodzi o scalanie, nie ma trzech widoków, ale wszystkie są połączone w jedno z kolorowym podświetleniem dla każdej wersji. Możesz edytować kod bezpośrednio lub istnieją przyciski, aby użyć dowolnej wersji tego fragmentu, który chcesz.

Nie używam go nawet jako edytora lub IDE, tylko do pracy z git. Czysty interfejs użytkownika i bardzo prosty, a ponadto można go łatwo dostosować.

  • Możesz go uruchomić z wiersza poleceń i przekazać w jednym pliku, który chcesz otworzyć, lub dodać folder projektu (git repo).

    • Poleciłbym również menedżera projektów jako bardzo wygodny sposób nawigowania między projektami bez wypełniania widoku drzewa.
  • Jedyny problem, jaki miałem, to odświeżanie - podczas pracy z dużymi repozytoriami atom może spowolnić aktualizację zmian, które wprowadzasz poza nim. Po prostu zawsze go zamykam, kiedy skończę, a następnie otwieram ponownie, gdy chcę ponownie zobaczyć moje zmiany / zatwierdzić. Możesz także ponownie załadować okno za pomocą klawiszy Ctrl + Shift + F5, co zajmuje tylko sekundę.

I to oczywiście za darmo.

Sean McCallum
źródło
3

Używam różnych narzędzi do scalania i porównywania:

git config --global diff.tool diffuse
git config --global merge.tool kdiff3

Pięść może wywołać:

git difftool [BRANCH] -- [FILE or DIR]

Drugi jest wywoływany, gdy używasz git mergetool.

efemerydy
źródło
2

Możesz zainstalować narzędzie ECMerge diff / merge na swoim Linux, Mac lub Windows. Jest wstępnie skonfigurowany w Git, więc wystarczy użyć git mergetool.

Armel
źródło
2

Jeśli korzystasz z Visual Studio , wbudowane narzędzie Team Explorer to bardzo miłe narzędzie do rozwiązywania konfliktów scalania git.

Charith
źródło
0

gitx http://gitx.frim.nl/

Niektóre błędy podczas pracy z dużymi zestawami zatwierdzeń, ale świetne do przeglądania zmian i wybierania różnych zmian na etapie, a następnie zatwierdzania.

Blake Lucchesi
źródło