Qual è il miglior strumento di unione visiva per Git?

Qual è lo strumento migliore per visualizzare e modificare un’unione in Git? Mi piacerebbe avere una vista unione in 3 direzioni, con “mio”, “loro” e “antenato” in pannelli separati e un quarto pannello “output”.

Inoltre, le istruzioni per invocare detto strumento sarebbero grandiose. (Non ho ancora capito come avviare kdiff3 in modo tale da non darmi un errore.)

Il mio sistema operativo è Ubuntu.

Combinare è uno strumento diff / merge.

Ecco come installarlo su:

  • Ubuntu
  • Mac
  • Windows : “La versione consigliata di Meld per Windows è la versione più recente, disponibile come MSI da http://meldmerge.org

È ansible configurare il proprio strumento di unione da utilizzare con ” git mergetool “.

Esempio:

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

E mentre ci sei, puoi anche impostarlo come difftool per ” git difftool “:

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

Nota che in Unix / Linux non vuoi che $BASE venga interpretato come una variabile dalla tua shell: dovrebbe effettivamente apparire nel tuo file ~ / .gitconfig perché funzioni.

Beyond Compare 3 , il mio preferito, ha una funzionalità di unione nella versione Pro . La cosa buona con la sua unione è che ti consente di vedere tutte e 4 le viste: base, sinistra, destra e risultato unito. È un po ‘meno visivo di P4V ma molto più di WinDiff. Si integra con molti controlli sorgente e funziona su Windows / Linux. Ha molte caratteristiche come regole avanzate, edizioni, allineamento manuale …

Perforce Visual Client ( P4V ) è uno strumento gratuito che fornisce una delle interfacce più esplicite per la fusione (vedere alcuni screenshot ). Funziona su tutte le principali piattaforms. La mia principale discrepanza con quello strumento è il suo tipo di interfaccia “di sola lettura” . Non è ansible modificare manualmente i file e non è ansible allineare manualmente.

PS: P4Merge è incluso in P4V. Perforce cerca di rendere un po ‘difficile ottenere il proprio strumento senza il proprio client.

SourceGear Diff / Merge potrebbe essere la mia seconda scelta di strumenti gratuiti. Verifica che l’unione sia stata ripresa e vedrai che ha almeno 3 visualizzazioni.


Meld è un nuovo strumento gratuito che preferirei a SourceGear Diff / Merge : ora funziona anche sulla maggior parte delle piattaforms (Windows / Linux / Mac) con il netto vantaggio di supportare nativamente alcuni controlli del codice sorgente come Git . Quindi è ansible avere un po ‘di cron history su tutti i file molto più semplici. La vista unione (vedi screenshot ) ha solo 3 riquadri, proprio come SourceGear Diff / Merge . Questo rende la fusione un po ‘più difficile nei casi complessi.

PS: Se un solo strumento supporta un giorno la fusione di 5 visualizzazioni , sarebbe davvero fantastico, perché se si selezionano i commit in Git non si ha realmente una base, ma due. Due basi, due modifiche e una fusione risultante.

Il mio strumento di fusione visiva preferito è SourceGear DiffMerge

  • È gratis.
  • Cross-platform (Windows, OS X e Linux).
  • Pulire l’interfaccia utente visiva
  • Tutte le funzionalità di diff che ti aspetti (Diff, Merge, Folder Diff).
  • Interfaccia a riga di comando.
  • Scorciatoie da tastiera utilizzabili

Interfaccia utente

Ho sentito cose positive su kdiff3.

Puoi provare P4Merge .

Visualizza le differenze tra le versioni dei file con P4Merge. Risolvi i conflitti derivanti dallo sviluppo parallelo o simultaneo tramite la codifica dei colors.

Le funzionalità includono:

  • Evidenzia e modifica le differenze dei file di testo
  • Scegli di includere o ignorare le terminazioni di linea o gli spazi bianchi
  • Riconosci le convenzioni di fine linea per Windows (CRLF), Mac (CR) e Unix (LF)
  • Utilizzare i parametri della riga di comando e avviare da applicazioni non Perforce
  • Visualizza i numeri di riga quando si confrontano e si uniscono file
  • Escludere i file che sono modificati, unici o invariati
  • Filtra i file per nome o estensione
  • Organizza le risorse modificate nella familiare gerarchia di file / cartelle
  • Confronta JPEG, GIF, TIFF, BMP e altri formati di file
  • Estendi usando l’API Qt
  • Sovrapponi immagini o visualizza affiancate
  • Evidenzia le differenze sulle immagini sovrapposte

vimdiff

Una volta che hai imparato Vim (e IMHO dovresti), vimdiff è solo un altro piccolo e bellissimo concetto ortogonale da imparare. Per ottenere assistenza online su vim:

 :help vimdiff 

Se sei bloccato nei periodi bui dell’utilizzo del mouse, e i file che stai unendo non sono molto grandi, ti consiglio di combinare.

Diffuse è il mio preferito ma ovviamente sono di parte. 🙂 È molto facile da usare:

 $ diffuse "mine" "output" "theirs" 

Diffuse è un piccolo e semplice strumento di unione di testo scritto in Python. Con Diffuse puoi facilmente unire, modificare e rivedere le modifiche al tuo codice. Diffuso è un software gratuito.

Araxis Merge http://www.araxis.com/ Lo sto usando su Mac OS X ma l’ho usato su Windows … non è gratuito … ma ha alcune caratteristiche interessanti … più bello su Windows anche se.

Se stai cercando uno strumento diff oltre il paragone è piuttosto carino: http://www.scootersoftware.com/moreinfo.php

Puoi cambiare lo strumento usato da git mergetool passando git mergetool -t= o --tool= . Per cambiare il valore predefinito (da vimdiff) usa git config merge.tool .

IntelliJ IDEA ha uno strumento sofisticato per la risoluzione dei conflitti di fusione con la bacchetta magica Resolve, che semplifica enormemente la fusione:

Fonte: https://blog.jetbrains.com/dotnet/2017/03/13/rider-eap-update-version-control-database-editor-improvements/

È ansible installare lo strumento diff / merge ECMerge su Linux, Mac o Windows. È preconfigurato in Git, quindi basta usare git mergetool per fare il lavoro.

Ho provato molti degli strumenti menzionati qui e nessuno di loro è stato proprio quello che sto cercando.

Personalmente, ho trovato Atom un ottimo strumento per visualizzare le differenze e la risoluzione / fusione dei conflitti.

Per quanto riguarda la fusione, non ci sono tre viste ma è tutto combinato in uno con l’evidenziazione colorata per ogni versione. Puoi modificare il codice direttamente o ci sono pulsanti per utilizzare qualsiasi versione di quello snippet che desideri.

Non lo uso più nemmeno come editor o IDE, solo per lavorare con git. Interfaccia utente pulita e molto semplice, in più è altamente personalizzabile.

  • È ansible avviarlo dalla riga di comando e passare un singolo file a cui si desidera aprire, oppure aggiungere la cartella del progetto (git repo).

    • Vorrei anche raccomandare project manager come un modo molto comodo per navigare tra i progetti senza riempire la vista ad albero.
  • L’unico problema che ho riscontrato è l’aggiornamento: quando si lavora con repository di grandi dimensioni atom può essere lento ad aggiornare le modifiche apportate al di fuori di esso. Lo chiudo sempre quando ho finito e poi riapro quando voglio vedere di nuovo le mie modifiche / commit. Puoi anche ricaricare la finestra con Ctrl + Maiusc + F5, che richiede solo un secondo.

Ed è ovviamente gratuito.

Uso diversi strumenti per unire e confrontare:

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

Il pugno potrebbe essere chiamato da:

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

Il secondo è chiamato quando usi git mergetool .

Se usi Visual Studio , lo strumento integrato Team Explorer è uno strumento molto utile per risolvere i conflitti di merge.

Quindi per il Git si fondono, puoi provare:

  • DiffMerge per confrontare visivamente e unire file su Windows, OS X e Linux.

    DiffMerge

  • Combinare , è uno strumento di confronto e fusione visuale.

    La fusione è uno strumento di contrasto e fusione visiva

  • KDiff3 , un programma diff e merge), che confronta o unisce 2 o 3 file di input / dirs di testo.
  • opendiff (parte di Xcode Tools su macOS), un’utilità della riga di comando che avvia l’applicazione FileMerge da Terminal per confrontare graficamente file o directory, inclusa la fusione .

gitx http://gitx.frim.nl/

Alcuni bug quando si lavora con grandi serie di commit ma ottimi per sfogliare le modifiche e selezionare diverse modifiche allo stage e quindi eseguire il commit.