Cómo obtener ‘git diff’ para mostrar solo mensajes de confirmación

3 minutos de lectura

Avatar de usuario de Chris Hansen
chris hansen

¿Cómo uso git diff para mostrar solo los mensajes de confirmación?

Solo quiero el mensaje de la confirmación, no el nombre de los archivos. Estoy tratando de obtener un registro de cambios en Git.

  • ¿Usar git log en su lugar?

    – Ismail Badaui

    10 de noviembre de 2015 a las 23:08

Avatar de usuario de Simon Clewer
Simón Clewer

Tu podrías intentar git logde este modo,

git log commitA...commitB

La notación de punto triple ‘…’ le da solo los mensajes de confirmación para todas las confirmaciones a las que se puede acceder desde commitA o commitB, pero no desde ambas, es decir, la diferencia entre commitA y commitB.

Puede reducirse fácilmente al mensaje de confirmación con algo como:

git log --pretty=%B commitA...commitB

Algunos ejemplos

# Show a log of all commits in either the development branch or master branch since they diverged.
git log --pretty=%B development...master
# Ahow a log of all commits made to either commit b8c9577  or commit 92b15da, but not to both.
git log --pretty=%B b8c9577...92b15da
# Show a log for all commits unique to either the local branch master or local version of the origin's master branch.
git co master
git log --pretty=%B master...origin/master
# Show a log for all commits unique to either the local HEAD or local version of the origin's master branch.
git co master
# Hack, hack
git log --pretty=%B HEAD...origin/master

  • Puede ser maestro… desarrollo no desarrollo… maestro

    – Anton Rybalko

    5 de noviembre de 2020 a las 14:17

  • %B representa raw body (unwrapped subject and body). Creo que el uso de la %s subject es mejor.

    – IgorZ

    21 de septiembre de 2021 a las 12:12

Avatar de usuario de CodeWizard
Asistente de código

Usar:

git log --oneline -n 10

Imprimirá el último norte (10) confirma en líneas individuales. Solo los mensajes de confirmación.

También puede combinarlo con otros parámetros de registro, como:

git log --oneline --graph --decorate -n 10

  • ¿Eso también funciona con submódulos? También quiero obtener los cambios de los submódulos.

    – Chris Hansen

    10 de noviembre de 2015 a las 23:22

  • Los submódulos son básicamente un repositorio git dentro del repositorio root git, por lo que tendrá que hacerlo dentro de la carpeta. siempre puede escribir un script o un alias para que lo haga por usted.

    – Asistente de código

    10 de noviembre de 2015 a las 23:24

  • ¿No puedo usar git diff para mostrar los cambios del submódulo?

    – Chris Hansen

    10 de noviembre de 2015 a las 23:24

  • por ejemplo: git submodule foreach git log --oneline .... El for each se repetirá en todos sus submódulos.

    – Asistente de código

    10 de noviembre de 2015 a las 23:25


Avatar de usuario de Anton Rybalko
anton rybalko

Además de la respuesta de Simon Clewer:

git log master..dev --no-merges --pretty='format:%cs %s'

Imprime solo sujetos de confirmaciones entre ramas maestras y de desarrollo (sin confirmaciones de combinación). Algo como esto:

2020-12-31 Hot fix
2020-12-30 Change some stuff
2020-12-29 Add the feature

Cambios entre sucursales locales y remotas:

git log HEAD..origin --no-merges --pretty='format:%cs %s'

Ver también ¿Cuáles son algunas buenas formas de administrar un registro de cambios usando Git?.

Avatar de usuario de Simon
Simón

git log --pretty=%B

le mostrará los últimos mensajes de confirmación.

En caso de que desee limitar la cantidad de mensajes de confirmación que se muestran mediante un número, nortepuede hacerlo proporcionando un adicional -Np.ej,

git log -3 --pretty=%B

para los últimos tres mensajes de confirmación.

¿Ha sido útil esta solución?