Esta respuesta es excelente para ver una diferencia visual entre dos archivos que se registran en git: ¿Cómo veo la salida 'git diff' con un programa visual diff?
Sin embargo, me gustaría ver una diferencia visual entre dos ramas. Hasta ahora, mi mejor apuesta parece ser:
git diff --name-status master dev
que no es muy informativo y no muy visual.
¿Hay algo mejor por ahí?
Respuestas:
Usar
git diff
con un rango .Esto comparará los consejos de cada rama.
Si realmente desea un software GUI, puede probar algo como SourceTree que es compatible con Mac OS X y Windows.
fuente
Meld
, luego configurarlo como predeterminadodifftool
congit config --global diff.tool meld
y finalmente iniciarlo en lugar de simplementediff
congit difftool branch1..branch2
. El resultado es mucho más bonito.git difftool -t meld branch1..branch2
Para ver una diferencia visual de todas las diferencias entre dos ramas, me gusta fusionar las dos ramas, SIN comprometer la fusión, y luego usar
git gui
o git Extensions para obtener una visión general de las diferencias.Línea de comando de Git para fusionar sin comprometer:
Luego, cuando haya terminado, puede deshacer la fusión con
(h / t a @ jcugat para el comentario)
fuente
git gui
, muestra los conflictos como no escenificados, los no conflictos como escenificados, por lo que incluso obtienes una buena distinción. Me ayuda mucho más que la respuesta mejor calificada: DEn caso de que esté usando Intellij Idea IDE, puede usar la opción de comparación en la rama.
fuente
También puedes hacerlo fácilmente con gitk.
Primero haga clic en la punta de branch1. Ahora haga clic derecho en la punta de branch2 y seleccione Diff this-> selected.
fuente
gitk branch1..branch2
solo muestra confirmaciones entre las dos revisiones.Para aquellos de ustedes en Windows que usan TortoiseGit, pueden obtener una comparación algo visual a través de esta característica bastante oscura:
shift
y haga clic derechoctrl
para seleccionar dos ramas para compararFuente: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
fuente
Si está utilizando OSX o Windows 7+, Atlassian SourceTree funciona muy bien para esto. Es gratis.
Puede ver los cambios por etapas en una configuración de diferencias de lado a lado, y puede comparar fácilmente local con remoto y cualquier otra rama. Cuando se seleccionan varios archivos, la diferencia se muestra a continuación:
Suponiendo que ha desprotegido una rama de características y desea ver el diferencial contra 'maestro', haga clic derecho en la rama 'maestro' y seleccione "Diferenciar contra corriente"
Desafortunadamente, no parece que esté disponible en distribuciones * nix en el corto plazo .
fuente
Pruebe "difftool" (suponiendo que tenga configuradas las herramientas diff) - consulte https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Creo que el estado del nombre es bueno para el resumen, pero difftool repetirá los cambios (y la
-d
opción le da la vista de directorio), por ejemploO como @ rsilva4 mencionó con
-d
y por defecto a su rama actual, es solo, por ejemplo, comparar con master:... y sí, hay muchas variaciones: https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
fuente
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
Si está usando github, puede usar el sitio web para esto:
github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch
Eso te mostrará una comparación de los dos.
fuente
github.com/url/to/your/repo/compare/
y luego puedes seleccionar las ramasEn GitExtensions puede seleccionar ambas ramas en la cuadrícula de revisión con Ctrlpresionado. Luego puede ver los archivos que difieren entre esas ramas. Cuando seleccione un archivo, verá diff para él.
Tomado de aquí
fuente
ACTUALIZAR
Mac: ahora uso SourceTree. Completamente recomendado. Especialmente me gusta la forma en que puedes poner en escena a los tíos.
Linux: he tenido éxito con:
meld
Por ejemplo, para instalar
smartgit
en Ubuntu:.deb
de https://www.syntevo.com/smartgit/download/Esto hace el trabajo:
git-diffall con una herramienta GUI diff como meld. Ver punto 5 aquí:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Hay una buena publicación sobre git and meld aquí: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
fuente
Si usa Eclipse, puede comparar visualmente su rama actual en el espacio de trabajo con otra etiqueta / rama:
fuente
Puede usar el P4Merge gratuito de Perforce para hacer esto también:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Los detalles sobre su integración con Git se pueden encontrar aquí y aquí.
pero un resumen rápido de los enlaces anteriores es:
$ git mergetool
y$ git difftool
usar p4merge$ git diff
solo usará el visor de diferencias en línea predeterminado :) (probado con git versión 1.8.2)Cambios para .gitconfig
fuente
Si usa el excelente editor de WebStorm, puede compararlo con cualquier rama que desee:
fuente
Mira esto
git show-branch
Hay muchas cosas que puede hacer con la funcionalidad core git. Puede ser bueno especificar qué le gustaría incluir en su diferencia visual. La mayoría de las respuestas se centran en diferencias línea por línea de confirmaciones, donde su ejemplo se centra en los nombres de los archivos afectados en una confirmación determinada.
Una imagen que parece no abordarse es cómo ver las confirmaciones que contienen las ramas (ya sea en común o de manera única).
Para este visual, soy un gran admirador de
git show-branch
; muestra una tabla bien organizada de confirmaciones por rama de regreso al antepasado común. - para probarlo en un repositorio con múltiples ramas con divergencias, simplemente escribagit show-branch
y verifique la salida - para una revisión con ejemplos, consulte Comparar confirmaciones entre ramas de Gitfuente
Aquí le mostramos cómo ver la diferencia visual entre confirmaciones completas, a diferencia de los archivos individuales, en Visual Studio (probado en VS 2017). Desafortunadamente, solo funciona para confirmaciones dentro de una rama: en el "Explorador del equipo", elija la vista "Ramas", haga clic con el botón derecho en el repositorio y elija "Ver historial" como en la siguiente imagen.
Luego, el historial de la rama actual aparece en el área principal. (Cuando las ramas que terminaron como confirmaciones anteriores en la rama actual están marcadas con etiquetas). Ahora seleccione un par de confirmaciones con Ctrl-Izquierda, luego haga clic derecho y seleccione "Comparar confirmaciones ..." en el menú emergente.
Para obtener más información sobre la comparación de sucursales en el mundo de Microsoft, consulte esta pregunta de stackoverflow: diferencias entre las sucursales de git con Visual Studio .
fuente
También puede usar vscode para comparar ramas usando la extensión CodeLense, esto ya se responde en este SO: Cómo comparar diferentes ramas en el código de Visual Studio
fuente