2013-08-25 9 views
5

Occasionalmente inserirò nella modalità di risoluzione dei problemi e commetterò/spingo un numero di commit piccoli ma separati con un commento del tipo "Risoluzione dei problemi dello < qualcosa di > durante la distribuzione su Heroku". Vorrei utilizzare lo stesso commento per ogni commit senza doverlo ridigitare. È possibile?C'è un modo per riutilizzare il commento precedente su un commit Git?

risposta

4

In un primo momento, ho risposto:

immagino git commit --reuse-message=HEAD lo fa

poi ho pensato che non è quello che si voleva e eliminato. Poi la vita ha raggiunto e ottenuto AFK per un paio d'ore. In ogni modo, nonostante una risposta essendo già stato accettato, avrei suggerito:

$ git config alias.troubleshoot '!troubleshoot() { git add -u && git commit -m "Troubleshooting the $1 during deployment to Heroku."; }; troubleshoot' 

E lo si utilizza nel modo seguente:

  1. modificano i file esistenti
  2. (eventualmente aggiungere file non monitorate)

Registra modifiche (e eventualmente nuovi file) con "Trou bleshooting the foo durante la distribuzione a Heroku. " come messaggio di commit.

+0

Questa è una soluzione più sicura al problema ed è anche una soluzione per il problema più ampio, Come posso riutilizzare facilmente i commenti comuni di commit git?Il fatto che sia possibile utilizzare i parametri aiuta a garantire che il registro non si riempia di commenti inutili. Vedi [Alias] (https://git.wiki.kernel.org/index.php/Aliases) per maggiori informazioni. – Seth

1

Non sono sicuro di come si possa avere un determinato set di commit Git utilizzare l'ultimo commento git inserito, ma è possibile impostare un messaggio di commit predefinito. Questo potrebbe fare il trucco fintanto che non annulli il messaggio di commit predefinito una volta che hai finito con tutti i commit necessari per usare quel messaggio.

Ecco come procedere impostando un messaggio di commit predefinito. Innanzitutto, inserisci il messaggio di commit desiderato in un file, chiamalo ~/LastCommitMessage.txt. Quindi, specificare questo come predefinita (globale) messaggio di commit in questo modo:

$ git config --global commit.template ~/LastCommitMessage.txt 

Si potrebbe restringere il campo non usando --global e con qualcos'altro.

È possibile accedere facilmente a tutte le impostazioni git aprendo il file .gitconfig che si trova nella propria directory home. Apri quel file ed elimina l'impostazione precedente per disinserirla una volta che hai finito con tutti i tuoi commit.

9

Dalla documentazione git-commit(1) di comando,

-C <commit> 
--reuse-message=<commit> 
Take an existing commit object, and reuse the log message and the authorship 
information (including the timestamp) when creating the commit. 

-c <commit> 
--reedit-message=<commit> 
Like -C, but with -c the editor is invoked, so that the user can further edit 
the commit message. 

E 'quindi possibile utilizzare,

git commit --reuse-message=HEAD 

Aggiornamento:

Potrebbe anche essere necessario utilizzare l'opzione --reset-author,

--reset-author 
When used with -C/-c/--amend options, declare that the authorship of the 
resulting commit now belongs of the committer. This also renews the author 
timestamp. 
+0

Ah, quindi questo non sta tirando dal mio ultimo commento di commit? – Seth

+0

Pensandoci sopra ... Se scrivo localmente 'git commit -a --reuse-message = HEAD', come potrebbe tirare qualcosa di diverso dal mio più recente commento di commit? Come si inserirebbe un commento di un altro membro del team con quel comando e contesto? – Seth

+0

Mi dispiace aver frainteso la tua domanda, Sì, sta tirando dal tuo messaggio di commit più recente in base a dove punta il tuo HEAD. Se hai un altro commento che interferisce tra quello nuovo e quello precedente, prenderà quindi il messaggio di questo commento. –

Problemi correlati