Cuando se git commitabre, el editor de mensajes muestra un breve estado, algo como esto:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is ahead of 'origin/master' by 26 commits.
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: Showcase/src/com/gigantt/BorderArea.mxml
# modified: Showcase/src/com/gigantt/Client.mxml
# modified: Showcase/src/com/gigantt/GraphItem.mxml
#
¿Cómo puedo modificar git para mostrar también la diferencia que se va a comprometer? Soy consciente de que puede ser una diferencia larga, pero aún así ... muy útil.

git diff --cachedproduce, pero ¿por qué ejecutar un comando separado si lo desea cada vez?Respuestas:
La bandera
--verbose(o-v) paragit commitmostrará la diferencia de lo que se confirmaría:git commit --verbosefuente
No hay suficiente reputación para publicar una respuesta a la respuesta de Alan, pero para Idan y cualquier otra persona, simplemente lo probé y las líneas de diferencia en el mensaje de confirmación no están explícitamente comentadas. Sin embargo, todavía no aparecen en el mensaje de confirmación final, gracias a Dios.
$ git commit --verboseEn mi editor:
(tenga en cuenta la falta de
#preceder las líneas de diferencia)Y luego el mensaje de confirmación real:
Obviamente,
git showseguirá mostrando la diferencia, pero eso es porque siempre lo hace para las confirmaciones. :)fuente
# ------------------------ >8 ------------------------- supongo que git elimina automáticamente todo lo que aparece después.git config --global commit.verbose trueLa forma más sencilla de asegurarse de que este comportamiento esté siempre presente es agregar esta sección a su
git configarchivo:Es posible que deba configurar su editor para que se muestre en modo diff (para resaltar la sintaxis). Utilizo Notepad2 como reemplazo del Bloc de notas de Windows y
-s diffestablezco el esquema de color de manera apropiada (rojo para líneas eliminadas, etc.):fuente
He puesto las siguientes líneas en .git / hooks / prepare-commit-msg para obtener una diferencia comentada:
De esta manera, no solo puede comentar la diferencia, sino también agregar más información (como lo hace la opción estadística ).
Editar: También git commit --verbose no incluye la diferencia en el mensaje de confirmación de esta manera lo haría sin los #.
fuente
# ------------------------ >8 ------------------------, puede encontrar más git-scm.com/docs/git-commit#git-commit-scissorsSi desea ver siempre la diferencia cuando se compromete, puede agregar lo siguiente a su
~/.gitconfigarchivo:fuente
git config --global alias.commit 'commit -v'y el alias se agregó como sugirió, solo automáticamente. Creé otro alias llamadocvque funciona como se esperaba. Mi versión de git es 2.5.0 empaquetada en Ubuntu 15.10.git config --global commit.verbose true