Visualización de Git diff (Linux)

git diff ...muestra una diferencia pero en la terminal.

Quiero una GUI para la visualización de git diff ....

En la medida en que lo intenté git diff ... | kompare -. Esto funciona, pero el contexto que se muestra es solo lo que está disponible en .diff, no el contenido completo del archivo.

Probablemente sería mejor poder ver el contenido completo del archivo en el visualizador de diferencias.

Puedo consultar un repositorio de Git dos veces, exportarlo dos veces y compararlo con una herramienta de comparación de GUI (como Kompare). Pero es engorroso. ¿Conoces una mejor manera de hacerlo? Por fin, podría probar un script de shell que realiza dos pagos y dos exportaciones a un directorio temporal, pero esta no es la mejor solución posible.

¿Quieres comparar entre HEAD y tu clon modificado localmente? ¿O entre dos versiones, posiblemente remotas?
@NicolasRaoul Quiero comparar entre dos versiones. No hay necesidad de control remoto
si desea una herramienta GUI, ejecute git difftool --helpy vea la lista admitida

Respuestas (3)

Git se envía con gitk para navegar por el repositorio (lo que incluye mostrar diferencias de cosas que ya ha confirmado), gitgui y git difftool [que le permite elegir una de las herramientas de combinación presentes en su sistema]. Lo que personalmente uso es Gitcola , que me parece bastante conveniente:

Gitcola
Gitcola (fuente: Gitcola ; haga clic en la imagen para ampliar)

No solo maneja la parte de diferencias, sino también la mayoría de las otras acciones que necesita en su flujo de trabajo diario (confirmar, empujar, extraer, crear etiquetas, etc.).

Para alternativas, es posible que desee echar un vistazo a 6 útiles gráficos Git Client para Linux

También tenga en cuenta que, si no está satisfecho con la herramienta de diferencias integrada, siempre puede configurar una externa. Un muy buen candidato para eso sería Meld , que generalmente está disponible directamente desde los repositorios estándar en la mayoría de las distribuciones:

Meld María
Fusión (fuente: Fusión )

Tenga en cuenta que una herramienta de diferenciación externa de este tipo no necesita saber sobre Git, ya que la interfaz con el repositorio está cubierta por Git Cola y la herramienta de diferenciación solo tiene que, bueno, visualizar la diferencia que le entregó Git Cola.

Creo que gitksolo muestra una representación gráfica de las ramas de los árboles, y aunque eso es muy útil, las diferencias que muestra se parecen bastante a las de la línea de comandos. ¿Me estoy perdiendo de algo?
@MichaelScheper los colores? ¿ O el hecho de que gitkfue solo el suspenso, y mi respuesta recomienda Gitcola? :)
¡Je! ☺ Veo colores cuando lo hago git diffen la línea de comandos, por lo que Gitcola realmente no me ofrece ningún beneficio. Pero puede que no todos los terminales permitan el color, especialmente los usuarios de Windows, así que sí, ya veo, es un paso adelante. Pero supongo que entendí que 'una representación gráfica' significaba el tipo de salida desplazable de longitud diferente y lado a lado que proporciona SmartGit, en la respuesta de @Tom, así como varios IDE. Pero gracias por la aclaración y la emoción del suspenso. 😉
Bueno, si no te gusta la herramienta de diferencias integrada @MichaelScheper, siempre puedes configurar una externa como, por ejemplo , Meld . Eso no necesita saber git entonces, ya que Git Cola se ocupa de ese fin, simplemente necesita visualizar la diferencia. Supongo meldque encajaría perfectamente con sus deseos, vea, por ejemplo, esta captura de pantalla . Allí, actualicé mi respuesta. ¿Más feliz? :)
Sí, ese es el que estaba esperando. TBH, normalmente uso la línea de comando y vimdiff, pero para cambios más complicados, herramientas como Meld y SmartGit hacen la vida más fácil. ¡Gracias!
Úselo --dir-diffpara obtener un directorio completo; de lo contrario, git le preguntará archivo por archivo si desea mostrar las diferencias: git difftool --tool=meld --dir-diff develop. Una de las características que me gusta es que no resalta la sintaxis, lo que deja mucho más claro dónde están los cambios.

Verificaría SmartGit, debería hacer todo lo que quieras. Está disponible no solo en Linux, sino también en Windows y Mac. Es bastante fácil de usar y es gratuito para proyectos no comerciales.

SmartGit (gratis*)

SmartGit es una interfaz para el sistema de control de versiones distribuidas Git y se ejecuta en Windows, Mac OS X y Linux. SmartGit está diseñado para desarrolladores que prefieren una interfaz gráfica de usuario en lugar de un cliente de línea de comandos, para ser aún más productivos con Git, el DVCS más poderoso en la actualidad.

Interfaz de usuario de SmartGit

* Para trabajos no comerciales

Nueva respuesta a una vieja pregunta, pero estoy obligado. Otra excelente opción es GitLens

Ayer me encontré dejando el VCS de otro IDE e instalando vscodium para usar GitLens en su lugar. La forma en que se mueve contextualmente al archivo que ha abierto en el editor y presenta un historial de confirmación profundo es pura y brillante conveniencia.

https://gitlens.amod.io/

https://vscodium.com/

ingrese la descripción de la imagen aquí