2009-07-10 15 views
24

Tengo un diff bastante grande de 2 ramas GIT y me gustaría abrirlas en algún tipo de interfaz de usuario agradable una al lado de la otra. Algo que me muestra las diferencias fácilmente, y espero que pueda unir las diferencias una por una. git diff es bastante difícil de trabajar.GIT diff GUI

+0

Voy a agregar esto como un comentario ya que nunca lo he usado pero ¿[gitk] [1] hace el truco? [1]: http://www.kernel.org/pub/software/scm/git/docs/gitk.html – seth

+0

whoops ... lo siento. los comentarios de pensamiento también fueron formateados. – seth

+0

gitk es ortogonal. – jrockway

Respuesta

23

La respuesta es git difftool (al menos para git versión 1.6.3 y posterior). Recuerde que solo invoca la herramienta gráfica de diferencias configurada o encontrada automáticamente.

+3

Ejemplo: git difftool --tool = opendiff testbranch master – daniel

+1

En lugar de "testbranch master", que mostrará diffs entre testbranch y master, al revisar la bifurcación "testbranch" a menudo solo quiere ver los commit en esa rama. Utilice "master ... testbranch" para esto (tres períodos). Si testbranch es el HEAD actual, esto se puede abreviar como "maestro ..." –

+0

@JonathanHartley: Diff siempre tiene dos puntos finales, no sobre el rango de commits . En el navegador de repositorio gráfico como, por ejemplo, 'gitk' (o' git log -graph') the 'master ... testbranch' muestra ambas ramas al ancestro común. Para diff 'master ... testbranch' es un atajo para diff del ancestro común y (creo)' testbranch'. –

1

Si está en el proceso de fusión, git diff tiene una sintaxis muy agradable en la que las dos primeras columnas muestran la paternidad de cada línea, en una especie de diff fusionado unificado. A partir de ahí, es fácil resolver los conflictos con cualquier editor.

¿Tiene los bonitos colores encendidos? He aquí un fragmento de mi ~/.gitconfig:

 
[color] 
    diff = auto 
    branch = auto 
    status = auto 
    interactive = auto 

De todos modos, echar un vistazo a kdiff3, por ejemplo. Puede especificar la herramienta que se utilizará para la fusión, consulte los documentos git-mergetool para obtener detalles.

+2

Ejecutar "git mergetool" es la respuesta correcta, FWIW. – jrockway

23

utilizo kompare:

git diff | kompare - 

kompare no se limita a Git, también puede hacer

svn diff | kompare - 
bzr diff | kompare - 
diff -Naur clean/ patched/ | kompare - 
kompare bug3.fix.diff 

... se entiende la idea.

+0

Gracias. Funciona con 'meld' también. – elpddev