Quando git commit
aberto, o editor de mensagens mostra um breve status, mais ou menos assim:
# 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
#
Como posso ajustar o git para mostrar também o diff a ser confirmado? Estou ciente de que pode ser uma longa diferença, mas ainda assim ... tão útil.
git diff --cached
produz, mas por que executar um comando separado se você deseja isso sempre?Respostas:
O sinalizador
--verbose
(ou-v
) paragit commit
exibirá a diferença do que seria confirmado:git commit --verbose
fonte
Não há reputação suficiente para postar uma resposta à resposta de Alan, mas para Idan e qualquer outra pessoa eu apenas experimentei e as linhas de diferenças na mensagem de confirmação não foram explicitamente comentadas. No entanto, eles ainda não aparecem na mensagem final do commit, graças a Deus.
$ git commit --verbose
No meu editor:
(observe a falta de
#
precedência das linhas de diferenças)E então a mensagem de confirmação real:
Obviamente,
git show
ainda mostrará o diff, mas isso é porque sempre mostra para os commits. :)fonte
# ------------------------ >8 ------------------------
- presumo que o git remove automaticamente tudo o que aparece depois dele.git config --global commit.verbose true
A maneira mais simples de garantir que esse comportamento esteja sempre presente é adicionar esta seção ao seu
git config
arquivo:Você pode precisar configurar seu editor para realmente exibir no modo diff (para realce de sintaxe). Eu uso o Notepad2 como um substituto do bloco de notas do Windows e defino
-s diff
o esquema de cores de maneira apropriada (vermelho para linhas excluídas, etc.)fonte
Coloquei as seguintes linhas em .git / hooks / prepare-commit-msg para obter uma diferença comentada:
Desta forma, você pode não apenas comentar o diff, mas também adicionar mais informações (como a opção stat faz).
Editar: Também git commit --verbose não inclui o diff para a mensagem de commit desta forma faria sem os #s.
fonte
# ------------------------ >8 ------------------------
você pode encontrar mais git-scm.com/docs/git-commit#git-commit-scissorsSe você quiser sempre ver a diferença ao fazer um commit, você pode adicionar o seguinte ao seu
~/.gitconfig
arquivo:fonte
git config --global alias.commit 'commit -v'
e o alias foi adicionado como você sugeriu - apenas automaticamente. Criei outro alias chamadocv
que funciona como esperado. Minha versão git é 2.5.0 conforme empacotado no Ubuntu 15.10.git config --global commit.verbose true