Cuando se git commit
abre, 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 --cached
produce, pero ¿por qué ejecutar un comando separado si lo desea cada vez?Respuestas:
La bandera
--verbose
(o-v
) paragit commit
mostrará la diferencia de lo que se confirmaría:git commit --verbose
fuente
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 --verbose
En mi editor:
(tenga en cuenta la falta de
#
preceder las líneas de diferencia)Y luego el mensaje de confirmación real:
Obviamente,
git show
seguirá 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 true
La forma más sencilla de asegurarse de que este comportamiento esté siempre presente es agregar esta sección a su
git config
archivo: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 diff
establezco 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
~/.gitconfig
archivo:fuente
git config --global alias.commit 'commit -v'
y el alias se agregó como sugirió, solo automáticamente. Creé otro alias llamadocv
que funciona como se esperaba. Mi versión de git es 2.5.0 empaquetada en Ubuntu 15.10.git config --global commit.verbose true