2010-11-11 10 views
7

¿Hay algún programa que permita explorar la salida de un comando git-diff en una GUI?¿Explora la salida de git-diff en una GUI?

Lo que estoy buscando es algo similar a la forma en que SmartGit muestra su vista de las diferencias entre la copia de trabajo y el CABEZAL. Donde se muestran cada uno de los archivos que son diferentes a HEAD y se muestra el diff para el archivo enfocado.

No estoy seguro de si es posible hacer que SmartGit muestre la salida de un comando "git diff".

alt text

+0

yo no entiendo muy bien cómo lo que está pidiendo es diferente de lo que has mostrado ¿Hay alguna razón por la que no puedes usar SmartGit? ¿O preguntas sobre alternativas a SmartGit? –

+0

quiero ver cualquier salida de git-diff en un estilo similar a la imagen. SmartGit solo muestra esencialmente la copia de trabajo en HEAD diff. – Frank

+0

La pantalla diff de SmartGit es muy similar a [meld] (http://meldmerge.org/), que se puede ejecutar de forma independiente. – endolith

Respuesta

1

git diff tiene una opción de --ext-diff que las tuberías de la salida diff a un programa diff externo. Los populares programas de diferencias de código abierto que se sabe que funcionan con Git incluyen kdiff3 y Meld.

1

git difftool ejecutará todos los populares como meld, tkdiff, etc. También para las fusiones puede ejecutar git mergetool.

1

No estoy seguro de haber entendido su pregunta correctamente, pero aparentemente en la próxima versión de SmartGit (2.0, currently available in alpha), puede usar la ventana de registro para hacer diffs entre confirmaciones arbitrarias; aún no lo he intentado.

9

Comenzando con git v1.7.11, puede usar git difftool --dir-diff para realizar una diferencia de directorio.

La respuesta que sigue se aplica a las instalaciones de git anteriores a v1.7.11.


como han mencionado otros, git difftool se pueden utilizar para abrir el diff en una interfaz gráfica de usuario. Sin embargo, si tiene varios archivos con cambios, abrirá una instancia separada de la GUI para cada archivo.

Escribí una secuencia de comandos para evitar esta "característica" y permitir que todos los archivos se abran en una sola instancia de la GUI. Puede encontrar el git diffall script on GitHub.

También, usted puede estar interesado en esta relacionada SO pregunta:

git difftool, open all diff files immediately, not in serial

0

Nota que ahora se puede (git 1.7.11, Junio ​​2012) directorios diff (es decir, mostrar todos los archivos a comparar, antes de la apertura la difftool, en lugar de ejecutar una instancia de la herramienta externa una vez por un par de archivos.)

Ver "git difftool to give directory compare?"