online - git visual diff entre sucursales
git diff online (15)
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 es muy visual.
¿Hay algo mejor por ahí?
ACTUALIZAR
Ahora uso SourceTree. Completamente recomendado. Me gusta especialmente la forma en que puedes montar / dejar de lado trozos.
Esto hace el trabajo:
git-diffall con una herramienta de diferencia de GUI como meld. Ver el punto 5 aquí:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Hay una buena publicación sobre git y meld aquí: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
Aquí se muestra cómo ver la diferencia visual entre las ramas en Visual Studio (probado en VS 2017): en "Explorador de equipos", elija la vista "Sucursales", haga clic derecho en el repositorio y seleccione "Ver historial" como en el siguiente imagen.
Luego, el historial aparecerá en el área principal, con las ramas mostradas por etiquetas. Ahora seleccione un par de ramas (u otras confirmaciones) con Ctrl-Left, luego haga clic con el botón derecho y seleccione "Compare Commits ..." en el menú emergente.
En GitExtensions puedes seleccionar ambas ramas en la grilla de revisión presionando Ctrl . Luego puede ver los archivos que difieren entre esas ramas. Cuando seleccionas un archivo verás diff por él.
Tomado de here
En caso de que esté usando Intellij Idea IDE, podría usar la opción de comparación en la sucursal.
Hay muchas cosas que puedes hacer con la funcionalidad core git. Sería bueno especificar lo que desea incluir en su diferencia visual. La mayoría de las respuestas se centran en las diferencias de confirmaciones línea por línea, donde el ejemplo se centra en los nombres de los archivos afectados en una confirmación determinada.
Un aspecto visual que parece no abordarse es cómo ver las confirmaciones que contienen las ramas (ya sea en común o únicamente).
Para este visual, soy un gran fan de git show-branch
; se divide una tabla bien organizada de compromisos por rama de regreso al antepasado común. - para probarlo en un repositorio con múltiples ramas con divergencias, simplemente escriba git show-branch
y verifique el resultado - para una descripción con ejemplos, vea Compromisos de comparación entre las ramas de Git
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:
- Navega a la carpeta que quieras comparar
- Mantenga presionada la tecla
shift
y haga clic con el botón derecho - Ir a TortoiseGit -> Buscar referencia
- Use
ctrl
para seleccionar dos ramas para comparar - Haga clic derecho en su selección y haga clic en "Comparar referencias seleccionadas"
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 extensiones de Git para obtener una visión general de las diferencias.
La línea de comando de Git para fusionar sin comprometer:
git checkout branchA git merge --no-commit --no-ff branchB
Pruebe con "difftool" (suponiendo que tiene la configuración de herramientas diff) - consulte https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Me parece que el estado del nombre es bueno para el resumen, pero difftool repetirá los cambios (y la opción -d
le da la vista de directorio), por ejemplo
$ git difftool their-branch my-branch
Viewing: ''file1.txt''
Launch ''bc3'' [Y/n]:
...
O bien, como se menciona @ rsilva4 con -d
y por defecto a su rama actual, es justo, por ejemplo, compare con el maestro:
$ git difftool -d master..
... y sí, hay muchas variaciones - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
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 cómo integrarlo con Git se pueden encontrar here y here
pero un resumen rápido de los enlaces de arriba es:
- Pon los siguientes bits en tu ~ / .gitconfig, y luego puedes hacer
$ git mergetool
y$ git difftool
para usar p4merge - Tenga en cuenta que
$ git diff
seguirá utilizando el visor de diferencias en línea predeterminado :) (probado con la versión de Git 1.8.2)
Cambios para .gitconfig
[merge]
keepBackup = false
tool = p4merge
[mergetool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "/"$PWD/$BASE/"" "/"$PWD/$REMOTE/"" "/"$PWD/$LOCAL/"" "/"$PWD/$MERGED/""
keepTemporaries = false
trustExitCode = false
keepBackup = false
[diff]
tool = p4merge
[difftool "p4merge"]
cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "/"$REMOTE/"" "/"$LOCAL/""
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.
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 diff uno al lado del otro, y puede comparar fácilmente locales con remotos y cualquier otra dos ramas. Cuando se seleccionan varios archivos, la diferencia se muestra de la siguiente manera:
Suponiendo que ha comprobado una rama de características y desea ver el diff contra ''master'', haga clic derecho en la rama ''master'' y seleccione "Diff contra corriente"
Desafortunadamente, no parece que estará disponible en distribuciones * nix pronto .
Si usa Eclipse, puede comparar visualmente su rama actual en el área de trabajo con otra etiqueta / rama:
También puedes hacer esto fácilmente con gitk.
> gitk branch1 branch2
Primero haga clic en la punta de la rama1. Ahora haga clic con el botón derecho en la punta de branch2 y seleccione Dif. Esto-> seleccionado.
git diff branch1..branch2
Esto comparará las puntas de cada rama.
Si realmente quieres un software de GUI, puedes probar algo como SourceTree que sea compatible con Mac OS X y Windows.