Wat is de beste visuele merge-tool voor Git?

Wat is de beste tool voor het bekijken en bewerken van een merge in Git? Ik wil graag een samenvoegweergave in drie richtingen, met ‘mijn’, ‘hun’ en ‘voorouder’ in afzonderlijke panelen en een vierde paneel ‘uitvoer’.

Ook zouden instructies voor het aanroepen van de tool geweldig zijn. (Ik ben er nog steeds niet achter hoe ik kdiff3 zo moet starten dat ik geen foutmelding krijg.)

Mijn besturingssysteem is Ubuntu.


Antwoord 1, autoriteit 100%

Meldis een gratis, open-source en platformonafhankelijke (UNIX/Linux, OSX, Windows) /merge-tool.

Zo installeer je het op:


Antwoord 2, autoriteit 26%

Je kunt je eigen merge tool configureren om te gebruiken met “git mergetool“.

Voorbeeld:

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

En terwijl je toch bezig bent, kun je het ook instellen als je difftool voor “git difftool“:

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

Merk op dat je in Unix/Linux niet wilt dat de $BASEdoor je shell als een variabele wordt geparseerd – het zou eigenlijk in je ~/.gitconfig-bestand moeten verschijnen om dit te laten werken.


Antwoord 3, autoriteit 18%

Beyond Compare 3, mijn favoriet, heeft een samenvoegen-functionaliteit in de Pro-editie. Het goede ding met zijn samenvoeging is dat je alle 4 weergaven kunt zien: basis, links, rechts en samengevoegd resultaat. Het is iets minder visueel dan P4Vmaar veel meer dan WinDiff. Het integreert met veel bronbeheeren werkt op Windows/Linux. Het heeft veel functies, zoals geavanceerde regels, edities, handmatige uitlijning…

De Perforce Visual Client(P4V)is een gratis tool die een van de meest expliciete interfaces biedt voor het samenvoegen (zie enkele schermafbeeldingen). Werkt op alle grote platforms. Mijn grootste teleurstelling met die tool is zijn soort “alleen-lezen” interface. U kunt de bestanden niet handmatig bewerken en u kunt niet handmatig uitlijnen.

PS: P4Merge is inbegrepen in P4V. Perforce probeert het een beetje moeilijk te maken om hun tool te krijgen zonder hun klant.

SourceGear Diff/Mergeis misschien mijn tweede gratis gereedschap keuze. Controleer die screenshoten je zult zien dat het de 3 heeft minstens weergaven.


MELD is een nieuwere gratis tool die ik liever source gar DIFF / MERGE : Nu werkt het ook aan de meeste platforms (Windows / Linux / Mac) met het duidelijke voordeel van natief ondersteunen van een broncontrole zoals Git . Dus je kunt een aantal geschiedenis-diff hebben op alle bestanden veel eenvoudiger. The Merge View (zie screenshot ) heeft slechts 3 ruiten, net als sourcegear diff / Samenvoegen . Dit maakt het samenvoegen van enigszins harder in complexe gevallen.

PS: Als een gereedschap op een dag 5 weergaven ondersteunt Samenvoegen , zou dit echt geweldig zijn, want als je cherry-pick committeert in git, heb je echt geen basis maar twee. Twee basis, twee veranderingen en één resulterende samenvoegen.


Antwoord 4, Autoriteit 14%

Ik hoor goede dingen over KDIFD3.


Antwoord 5, Autoriteit 12%

Mijn favoriete Visual Merge-tool is SourceGear Diffmerge

  • Het is gratis.
  • Cross-platform (Windows, OS X en Linux).
  • Clean Visual UI
  • Alle diff-functies die u zou verwachten (diff, samenvoeging, map diff).
  • Opdrachtregelinterface.
  • Bruikbare sneltoetsen.


Antwoord 6, Autoriteit 9%

vimdiff

Zodra u VIM (en IMHO zou moeten hebben geleerd), is Vimdiff slechts een mooiere kleine orthogonale concept om te leren. Om online hulp te krijgen in VIM:

:help vimdiff 

Deze vraag dekt hoe het te gebruiken: Hoe kan ik Gebruik vimdiff om een ​​conflict op te lossen?

Als je vastzit in de donkere eeuwen van muisgebruik en de bestanden die je samenvoegt niet erg groot zijn, raad ik meld aan.


Antwoord 7, autoriteit 8%

IntelliJ IDEAheeft een geavanceerd samenvoegconflict resolutietoolmet de Resolve-toverstaf, die het samenvoegen aanzienlijk vereenvoudigt:


Antwoord 8, autoriteit 7%

Je kunt P4Mergeproberen.

Visualiseer de verschillen tussen bestandsversies met P4Merge. Los conflicten op die het gevolg zijn van parallelle of gelijktijdige ontwikkeling via kleurcodering.

De functies omvatten:

  • Verschillen in tekstbestanden markeren en bewerken
  • Kies ervoor om regeleindes of spaties op te nemen of te negeren
  • Herken regeleindconventies voor Windows (CRLF), Mac (CR) en Unix (LF)
  • Gebruik opdrachtregelparameters en start vanuit niet-Perforce-toepassingen
  • Regelnummers weergeven bij het vergelijken en samenvoegen van bestanden
  • Bestanden uitsluiten die gewijzigd, uniek of ongewijzigd zijn
  • Filter bestanden op naam of extensie
  • Organiseer gewijzigde middelen in de bekende hiërarchie van bestanden/mappen
  • Vergelijk JPEG, GIF, TIFF, BMP en andere bestandsindelingen
  • Uitbreiden met de Qt API
  • Beelden over elkaar heen leggen of naast elkaar weergeven
  • Markeer verschillen op overlappende afbeeldingen

Antwoord 9, autoriteit 4%

Diffuse is mijn favoriet, maar ik ben natuurlijk bevooroordeeld. 🙂 Het is heel gemakkelijk te gebruiken:

$ diffuse "mine" "output" "theirs"

Diffuse is een klein en eenvoudig tekst merge hulpmiddel geschreven in Python. Met Diffuse, kunt u eenvoudig samenvoegen, bewerken en beoordelen wijzigingen in uw code. Diffuse is gratis software.


Antwoord 10, Autoriteit 4%

Araxis Merge http://www.araxis.com/merge
Ik gebruik het op Mac OS X, maar ik heb het gebruikt op ramen … het is niet gratis … maar het heeft een aantal leuke features … mooier op de ramen wel.


Antwoord 11, Autoriteit 2%

Als je gewoon op zoek bent naar een verschil gereedschap niet te vergelijken is vrij aardig: http: //www.scootersoftware .com / moreinfo.php


Antwoord 12, Autoriteit 2%

U kunt het instrument dat door git mergetool wijzigen door het passeren git mergetool -t=<tool>of --tool=<tool>. Om de standaard te veranderen (van vimdiff) gebruik git config merge.tool <tool>


Antwoord 13, Autoriteit 2%

Dus voor de git merge, kunt u proberen:

  • DiffMerge om visueel te vergelijken en samenvoegen van bestanden op Windows, OS X en Linux.

  • Meld , is een visueel diff en merge tool.

  • KDiff3, een diff en merge-programma), dat 2 of 3 tekstinvoerbestanden/mappen vergelijkt of samenvoegt .
  • opendiff(onderdeel van Xcode Tools op macOS), een opdrachtregelhulpprogramma dat de FileMerge-toepassing start vanuit Terminal om bestanden of mappen grafisch te vergelijken, inclusief samenvoegen.

Antwoord 14, autoriteit 2%

Ik heb veel van de hier genoemde tools geprobeerd en geen van hen is echt wat ik zoek.

Persoonlijk vond ik Atomeen geweldig hulpmiddel voor het visualiseren van verschillen en het oplossen/samenvoegen van conflicten.

Wat betreft het samenvoegen, er zijn geen drie weergaven, maar het is allemaal gecombineerd tot één met gekleurde markering voor elke versie. Je kunt de code rechtstreeks bewerken of er zijn knoppen om de gewenste versie van dat fragment te gebruiken.

Ik gebruik het niet eens meer als editor of IDE, alleen om met git te werken. Schone gebruikersinterface en zeer eenvoudig, plus het is in hoge mate aanpasbaar.

  • Je kunt het starten vanaf de opdrachtregel en een enkel bestand doorgeven dat je wilt
    open naar, of voeg je projectmap toe (git repo).

    • Ik zou projectmanagerook aanraden als een erg handige manier om
      navigeren tussen projecten zonder uw boomstructuur te vullen.
  • Het enige probleem dat ik heb gehad is verversen — als je met grote opslagplaatsen werkt, kan atoom traag zijn om wijzigingen die je daarbuiten aanbrengt bij te werken. Ik sluit het gewoon altijd als ik klaar ben en open het dan weer als ik mijn wijzigingen/toezegging opnieuw wil bekijken. Je kunt het venster ook opnieuw laden met ctrl+shift+f5, wat maar een seconde duurt.

En het is natuurlijk gratis.


Antwoord 15

Als je visual studiogebruikt, is de ingebouwde tool van Team Explorer een erg leuke tool om git merge-conflicten op te lossen.


Antwoord 16

Ik gebruik verschillende tools voor samenvoegen en vergelijken:

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

Eerst kan worden gebeld door:

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

Second wordt aangeroepen als je git mergetoolgebruikt.


Antwoord 17

Je kunt ECMerge diff/merge toolinstalleren op je Linux, Mac of Windows. Het is vooraf geconfigureerd in Git, dus gewoon het gebruik van git mergetoolzal het werk doen.


Antwoord 18

gitx http://gitx.frim.nl/

Sommige bugs bij het werken met grote commit-sets, maar geweldig om door wijzigingen te bladeren en verschillende wijzigingen te kiezen om te stagen en vervolgens vast te leggen.

Other episodes