Cuando lo hago git diff COMMIT, veo los cambios entre ese commit y HEAD (hasta donde yo sé), pero me gustaría ver los cambios realizados por ese commit único.
No he encontrado ninguna opción obvia en diff/ logque me dé esa salida.
git
version-control
diff
git-diff
laktak
fuente
fuente

Respuestas:
Para ver la diferencia de un
COMMIThash particular :git diff COMMIT~ COMMITle mostrará la diferencia entreCOMMITel antepasado de ese y elCOMMIT. Consulte las páginas de manual de git diff para obtener detalles sobre el comando y gitrevisions sobre~notación y sus amigos.Alternativamente,
git show COMMIThará algo muy similar. (Los datos de la confirmación, incluida su diferencia, pero no para las confirmaciones de fusión). Consulte la página de manual de git show .fuente
^necesidades deben citarse en los shells Thomson y Bourne (sinónimo de|allí) yrcsus derivados (operador de intercalación) yzshcon elnotglobo extendido habilitado ( operador global)HEAD^implica el primer padre en caso de que un commit tenga varios padres (es decir, commit de fusión).git diff COMMIT~ COMMITfunciona para mí, observe la tilde en lugar de descuidar. Estoy ejecutando git versión 2.6.1.windows.1 en Windows 10.Como se menciona en " Taquigrafía para diff de git commit con su padre? ", También se puede usar
git diffcon:o
Con git show, necesitarías (para enfocarte solo en diff) hacer:
El
COMMITparámetro es commit-ish :Consulte gitrevision "ESPECIFICANDO REVISIONES" para hacer referencia a un commit-ish.
Vea también " ¿Qué significa tree-ish en Git? ".
fuente
También puedes probar esta manera fácil:
fuente
git showmuestra los cambios realizados en la confirmación más reciente.Equivalente a
git show HEAD.git show HEAD~1te lleva de vuelta 1 commit.fuente
Yo suelo hacer:
Para mostrar los cambios con respecto a la última confirmación. Si tiene más confirmaciones, aumente el número 1 a la cantidad de confirmaciones que desea ver.
fuente
Primero obtenga la ID de confirmación usando,
O
Copiar commit id.
Ahora usamos dos métodos para enumerar los cambios de una confirmación específica,
Método 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012Método 2:
fuente
^!??Esto le mostrará exactamente lo que hay en esa confirmación. Creo que puedes hacer un rango simplemente poniendo un espacio entre dos commits shas.
lo cual es bastante útil si está haciendo un rebase a menudo porque sus registros de características estarán todos en una fila.
fuente
Desde la página de manual para git-diff (1) :
Use el tercero en el medio:
También desde la misma página de manual, en la parte inferior, en la sección de Ejemplos :
Es cierto que está redactado un poco confuso, sería menos confuso como
fuente
git diff HEAD HEAD^.Lo siguiente parece hacer el trabajo; Lo uso para mostrar lo que ha sido traído por una fusión.
fuente
git log? (debido a stackoverflow.com/a/18585297/6309 )Otra posibilidad:
fuente
Podrías usar
git diff HEAD HEAD^1para ver la diferencia con la confirmación principal.Si solo desea ver la lista de archivos, agregue la
--statopción.fuente
diffcomando es: ¿qué necesitaría cambiar en el archivo para pasar de commitHEADa commitHEAD^1?También es posible si ha configurado su difftool.
Vea aquí cómo configurar difftool o la página de manual aquí
Además, puede usar
git diff-tree --no-commit-id --name-only -r <commit hash>para ver qué archivos se han cambiado / confirmado en un hash de confirmación de entregafuente
Me gusta el siguiente comando para comparar una confirmación específica y su última confirmación:
Ejemplo:
fuente
Para ver el autor y el tiempo por uso de compromiso
git show COMMIT. Lo que resultará en algo como esto:Si desea ver qué archivos se han cambiado, ejecute lo siguiente con los valores de la línea de combinación anterior
git diff --stat a2a2894 3a1ba8f.Si desea ver la diferencia real, ejecute
git --stat a2a2894 3a1ba8ffuente
git --stat a2a2894 3a1ba8f". Creo que te refieresgit diff a2a2894 3a1ba8fo si nounknown option: --stat.Para verificar los cambios completos:
Para verificar solo los archivos modificados / agregados / eliminados:
NOTA : Para verificar diff sin commit en el medio, no necesita poner los identificadores de commit.
fuente
Estoy ejecutando Git versión 2.6.1.windows.1 en Windows 10, por lo que necesitaba una ligera modificación a la respuesta de Nevik (tilde en lugar de caret):
Otra opción es citar el cursor:
fuente
Este comando te dará el commit-hash principal de Git:
Después de esto
git diff-tool <commit-hash> <parent-commit-hash>Ejemplo:
Después de este
fuente
Si solo desea ver los cambios en la última confirmación, simplemente
git showse lo dará.fuente
En caso de comprobar el cambio de origen en una vista gráfica,
por ejemplo:
fuente