2015-08-17 17 views
6

Quando sto commettendo, questo testo salta su:Git, leggere ultimo messaggio di commit quando commettere

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 2 commits. 

Changes to be committed: 

    new file: modules/new_file.txt 

Quello che voglio è quello di lasciare che questo testo informativo mi mostra anche il messaggio del mio ultimo commettere, senza di me che necessitano di passare attraverso git log, git show o qualcosa di simile.

E.g.

(...) 

Changes to be committed: 

    new file: modules/new_file.txt 

Previous commit message: 
    [FIX] Fixed the foo.bar module 

Questo è esattamente lo stesso di this question, ma nessuna delle risposte è stato effettivamente rispondendo alla domanda, quindi credo OP appena chiesto un po 'che non va?

+0

Stai utilizzando vim? – TM90

+0

No, sto usando Windows con Atom, Sublime o Notepad ++. Havent ha deciso ancora, ma al momento sto testando Atom. – chwi

risposta

5

C'è un git hook chiamato prepare-commit-msg che è ciò che genera questo modello di messaggio di commit. Ci dovrebbe essere un file prepare-commit-msg.sample nella directory .git per impostazione predefinita. Rinominalo per rimuovere lo .sample e quindi modificalo per includere uno git log -1 o qualsiasi altra cosa che potresti desiderare e lo riceverai quando ti impegni.

Qualcosa di simile

#!/bin/sh 

echo "# Previous commit:" >> $1 
git log -1 -p|sed 's/^\(.\)/# \1/g' >> $1 

dovrebbe essere sufficiente.

+0

Ok, non sono così familiare con gli script di bash, cercando di aggiungere "echo something'," dir', "ls" in cima a questo non fa nulla. Potresti fornire un esempio di lavoro minimo? EDIT: vedo che sputa qualcosa in git bash prima di aprire l'editor di commit. Quindi il mio problema è entrare nella sezione commenti nel messaggio di commit – chwi

0

È possibile scrivere il proprio comando? Potrebbe essere qualcosa del genere:

#!/bin/bash 
echo "Last commit message:" 
git log -1 --pretty=%B # only echo commit msg to console 
echo "Enter commit message:" 
read commitmsg # let user enter a commit message 
git commit -m "$commitmsg" 

Si dovrebbe quindi aggiungere questo file al PERCORSO.