Domanda

Qual è lo strumento migliore per visualizzare e modificare un'unione in Git? Mi piacerebbe avere una vista di unione a 3 vie, con & Quot; mio & Quot ;, & Quot; loro & Quot; e " antenato " in pannelli separati e un quarto " output " pannello.

Inoltre, le istruzioni per invocare detto strumento sarebbero ottime. (Non ho ancora capito come avviare kdiff3 in modo tale che non mi dia un errore.)

Il mio sistema operativo è Ubuntu.

È stato utile?

Soluzione

Meld è uno strumento diff / merge.

Ecco come installarlo su:

Altri suggerimenti

È possibile 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 configurarlo 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 analizzato come variabile dalla tua shell - dovrebbe effettivamente apparire nel tuo file ~ / .gitconfig affinché funzioni.

Beyond Compare 3 , il mio preferito, ha un unisci funzionalità nella Edizione 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 del codice 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 l'unione (vedi alcuni screenshot ). Funziona su tutte le principali piattaforme. Il mio disappunto principale con quello strumento è il suo tipo di & Quot; sola lettura & Quot; Interfaccia . Non è possibile modificare manualmente i file e non è possibile 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 il mio secondo annuncio gratuito scelta dello strumento. Controlla che unisci screenshot e vedrai che ha il 3 almeno visualizzazioni.


Meld è uno strumento gratuito più recente che preferirei SourceGear Diff / Merge : ora funziona anche sulla maggior parte delle piattaforme (Windows / Linux / Mac) con il netto vantaggio di supportare nativamente alcuni controlli del codice sorgente come Git . Quindi puoi avere un po 'di cronologia diff su tutti i file molto più semplice. La vista di unione (vedi screenshot ) ha solo 3 riquadri, proprio come SourceGear Diff / Unisci . Ciò rende la fusione un po 'più difficile in casi complessi.

PS: se un giorno uno strumento supporta 5 viste unite , sarebbe davvero fantastico, perché se scegli la ciliegia ti impegni in Git non hai davvero una base ma due. Due basi, due modifiche e una risultante unione.

Il mio strumento di unione visiva preferito è SourceGear DiffMerge

  • È gratuito.
  • Cross-platform (Windows, OS X e Linux).
  • Pulizia dell'interfaccia utente visiva
  • Tutte le funzionalità diff che ti aspetteresti (Diff, Merge, Folder Diff).
  • Interfaccia della riga di comando.
  • Scorciatoie da tastiera utilizzabili.

Interfaccia utente

Sento cose positive di kdiff3.

vimdiff

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

:help vimdiff 

Questa domanda spiega come usarlo: Come posso usare vimdiff per risolvere un conflitto?

inserisci qui la descrizione dell'immagine

Se sei bloccato nelle epoche buie dell'uso del mouse e i file che stai unendo non sono molto grandi, ti consiglio di combinare.

Puoi provare P4Merge .

  

Visualizza le differenze tra le versioni dei file con P4Merge. Risolvi i conflitti che derivano dallo sviluppo parallelo o simultaneo tramite la codifica a colori.

Le funzionalità includono:

  • Evidenzia e modifica le differenze nei file di testo
  • Scegli di includere o ignorare le terminazioni di riga o gli spazi bianchi
  • Riconosci le convenzioni di fine linea per Windows (CRLF), Mac (CR) e Unix (LF)
  • Utilizza i parametri della riga di comando e avvia da applicazioni non Perforce
  • Visualizza i numeri di riga durante il confronto e l'unione dei file
  • Escludi file modificati, univoci o invariati
  • Filtra i file per nome o estensione
  • Organizza le risorse modificate nella gerarchia familiare di file / cartelle
  • Confronta JPEG, GIF, TIFF, BMP e altri formati di file
  • Estendi usando l'API Qt
  • Sovrapponi immagini o visualizza fianco a fianco
  • Evidenzia le differenze sulle immagini sovrapposte

IntelliJ IDEA ha un sofisticato unisci conflitto strumento di risoluzione con la bacchetta magica Resolve, che semplifica notevolmente l'unione:

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

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

$ diffuse "mine" "output" "theirs"
  

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

Araxis Merge http://www.araxis.com/merge Lo sto usando su Mac OS X ma l'ho usato su Windows ... non è gratuito ... ma ha alcuni belle funzionalità ... comunque più belle su Windows.

Se stai semplicemente cercando uno strumento diff senza paragoni è abbastanza bello: http: // www. scootersoftware.com/moreinfo.php

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

Quindi, per l'unione git, puoi provare:

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

     DiffMerge

  • Meld , è uno strumento visivo per la differenza e l'unione.

     La fusione è uno strumento visivo diff e merge

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

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 l'unione, non ci sono tre viste ma è tutto combinato in uno con l'evidenziazione colorata per ogni versione. Puoi modificare direttamente il codice o ci sono pulsanti per utilizzare la versione dello snippet che desideri.

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

  • Puoi avviarlo dalla riga di comando e passare un singolo file che desideri aprire o aggiungere la cartella del progetto (git repo).

    • Vorrei anche raccomandare project manager come modo molto conveniente per navigare tra i progetti senza riempire la vista ad albero.
  • L'unico problema che ho riscontrato è rinfrescante: quando si lavora con grandi repository atom può essere lento ad aggiornare le modifiche apportate al di fuori di esso. Lo chiudo sempre quando ho finito, quindi riapro quando voglio visualizzare le mie modifiche / eseguire nuovamente il commit. Puoi anche ricaricare la finestra con ctrl + shift + f5, che richiede solo un secondo.

Ed è ovviamente gratuito.

Puoi installare strumento ECMerge diff / merge su Linux, Mac o Windows. È preconfigurato in Git, quindi solo usando git mergetool farà il lavoro.

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 viene chiamato quando si utilizza git mergetool.

Se usi visual studio , lo strumento integrato di Team Explorer è uno strumento molto utile per risolvere i conflitti di git merge.

gitx http://gitx.frim.nl/

Alcuni bug quando si lavora con set di commit di grandi dimensioni ma è ottimo per sfogliare le modifiche e selezionare diverse modifiche allo stage e quindi eseguire il commit.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top