2015-04-18 34 views
6

Io uso Git sulla riga di comando. Spesso sviluppo nuove funzionalità nei rami git che prendono il nome dai problemi di Jira (Wikipedia: JIRA) ad essi correlati, ad es. ramo "new-123" per biglietto Jira "NEW-123".completamento bash e commit git --message

Ho un hook git prepare-commit-msg locale che creerà il messaggio di commit recuperando l'oggetto del ticket Jira da Jira. Per esempio. "Finito # NEW-123: nuova funzionalità".

Tuttavia, preferisco di impegnarsi direttamente dalla linea di comando:

git commit -m "Finished #NEW-123: Cool new feature".

Vorrei creare il messaggio di commit quotato semplicemente premendo [TAB].

Conosco il meccanismo di completamento bash (Bash: An Introduction to Programmable Completion). Ma come usarlo insieme al completamento del comando esistente (git ha comunque un eccellente completamento in bash)? Posso "incatenare" il completamento?

Oppure devo riprogrammare le funzioni di completamento git (magari aggiungendo un hook alla mia funzione personalizzata)?

+4

Prendi più attenzione ai messaggi di commit. Non tutto dovrebbe essere automatizzato. Se li automatizzi in questo modo, la storia sembra brutta. Invece vorrei scrivere un messaggio personale e aggiungere un collegamento a JIRA manualmente. Si noti inoltre che testi, titoli e titoli in JIRA possono essere modificati dopo che i messaggi di commit sono stati fatti. Cosa succede se si verifica un errore nel codice che hai fatto per un ticket. Aprirai un nuovo ticket per il bugfix o estenderesti o addirittura modificheresti il ​​ticket? (entrambi sarebbero possibili, certo) – hek2mgl

+0

Un'altra cosa, di solito faccio molti commit su un ramo di funzionalità e rebase prima che li unisca in master. Il risultato è spesso un singolo commit che aggiunge una funzionalità, ma può anche essere due o più commit se questo ha senso. IMHO Ha senso quando ogni commit è una patch autosufficiente. – hek2mgl

+1

I second @ hek2mgl; Non ho voglia di automatizzare i messaggi di commit è una buona pratica. Dovresti sempre descrivere le modifiche nel tuo codice nel messaggio di commit, insieme ad avvertimenti, commenti e spiegazioni delle tue modifiche nel corpo del messaggio di commit (non il titolo). Puoi sempre collegarti al problema nel corpo per mantenere una connessione tra le modifiche e la richiesta di funzionalità/discussione di bug, ecc. –

risposta

0

Si potrebbe avere uno script di wrapper e quindi scrivere il completamento automatico di bash per quello. Quindi sulla riga di comando che useresti ad es. git-commit o commit come comando invece di git commit e si avrà il controllo completo del completamento automatico. (Ho già commit come alias per git commit perché lo faccio così tanto.)

Sono d'accordo con tutti i commenti precedenti, però, se si stesse facendo questo nella mia squadra sarei deluso; dovresti passare del tempo sui tuoi registri di commit e inserire alcuni dettagli, senza cercare di sbatterli in una riga. Ma dipende da te.