Estoy en la rama X y he agregado un par de confirmaciones más. Quiero ver todas las diferencias entre MASTER y la rama en la que estoy en términos de commits. Podría hacer un
git checkout master
git log
y luego un
git checkout branch-X
git log
y visualmente difieren estos, pero espero un método más fácil y menos propenso a errores.
Respuestas:
Puede obtener una salida visual muy agradable de cómo sus ramas difieren con esto
fuente
git log --oneline --graph --all --decorate --abbrev-commit
le dará una salida similar en un comando más corto / más legiblegit log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset'
git log --oneline --graph --all --decorate
es suficiente,--abbrev-commit
no es obligatorio,--oneline
es la abreviatura de--pretty=oneline --abbrev-commit
Puedes hacerlo fácilmente con
Eso le mostrará los compromisos que la rama X tiene pero el maestro no.
fuente
branch-X
, puede usargit log master..
git log master...branch-X
(tres puntos en lugar de dos). Verman gitrevisions
para más información.Creo que es cuestión de elección y contexto. Prefiero usar
Mostrará confirmaciones en desarrollo que no están en la rama maestra.
Si desea ver qué archivos están realmente modificados, use
Si no especifica argumentos, mostrará la diferencia completa. Si desea ver la diferencia visual, instálela
meld
en Linux oWinMerge
en Windows. Asegúrese de que sean las herramientas de herramientas predeterminadas. Luego use algo comoEn caso de que quiera compararlo con la rama actual. Es más conveniente usar HEAD en lugar del nombre de la rama como el uso:
Te mostrará todos los commits, a punto de fusionarse
fuente
--no-merges
git log origin/master..HEAD --oneline --no-merges
Si estás en Linux,
gitg
es un camino a seguir para hacerlo de manera muy rápida y gráfica.Si insiste en la línea de comando puede usar:
Para hacer
git log
más agradable por defecto, normalmente establezco estas preferencias globales:fuente
Sugeriría lo siguiente para ver la diferencia "en commits". Para diferencia simétrica, repita el comando con args invertidos:
fuente
si quieres usar gitk:
tiene una bonita GUi de la vieja escuela
fuente
No es la respuesta perfecta, pero funciona mejor para las personas que usan Github:
Ve a tu repositorio:
Insights -> Network
fuente
Si desea comparar en función de los mensajes de confirmación, puede hacer lo siguiente:
fuente
--oneline
y canalizarcut
, puede usargit log --format='%s'
Contribuyendo esto porque permite que los registros ayb se diferencien visualmente, uno al lado del otro, si tiene una herramienta de diferencia visual. Reemplace el comando diff al final con el comando para iniciar la herramienta visual diff.
fuente
Utilicé algunas de las respuestas y encontré una que se ajustaba a mi caso (asegúrese de que todas las tareas estén en la rama de lanzamiento).
Otros métodos también funcionan, pero descubrí que podrían agregar líneas que no necesito, como las confirmaciones de fusión que no agregan ningún valor.
o puedes comparar tu actual con el maestro
git fetch
está ahí para asegurarse de que está utilizando información actualizada.De esta manera, cada confirmación estará en una línea y puede copiarla / pegarla en un editor de texto y comenzar a comparar las tareas con las confirmaciones que se fusionarán.
fuente