2015-04-18 13 views
6

Ich benutze Git auf der Kommandozeile. Ich entwickle oft neue Funktionen in Git-Verzweigungen, die nach den damit verbundenen Jira-Problemen (Wikipedia: JIRA) benannt sind, z. Filiale "New-123" für Jira Ticket "NEW-123".Bash Vervollständigung und Git Commit - Nachricht

Ich habe eine lokale git prepare-commit-msg-Hook, die die Commit-Nachricht durch Abrufen des Betreffs des Jira-Tickets von Jira erstellen wird. Z.B. "Fertig # NEW-123: Coole neue Funktion".

Allerdings ziehe ich gerade von der Kommandozeile zu begehen:

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

Ich möchte die quittierte Commit-Nachricht nur durch Drücken von [TAB] erstellen.

Ich kenne den Bash Completion-Mechanismus (Bash: An Introduction to Programmable Completion). Aber wie benutzt man es zusammen mit der existierenden Befehlsvervollständigung (git hat ansonsten eine ausgezeichnete Vervollständigung in bash)? Kann ich die Fertigstellung "verketten"?

Oder muss ich die Git-Vervollständigungsfunktionen neu programmieren (vielleicht indem ich einen Haken zu meiner benutzerdefinierten Funktion hinzufüge)?

+4

Nehmen Sie mehr persönliche Sorgfalt auf die Commit-Nachrichten. Nicht alles sollte automatisiert werden. Wenn Sie sie so automatisieren, sieht die Geschichte hässlich aus. Stattdessen würde ich eine persönliche Nachricht schreiben und manuell einen Link zu JIRA hinzufügen. Beachten Sie auch, dass Texte, Titel und Überschriften in JIRA bearbeitet werden können, nachdem die Commit-Nachrichten erstellt wurden. Was ist, wenn ein Fehler im Code auftritt, den Sie für ein Ticket gemacht haben? Werden Sie ein neues Ticket für den Bugfix öffnen oder das Ticket erweitern oder sogar bearbeiten? (beide wären möglich, sicher) – hek2mgl

+0

Eine andere Sache, ich mache normalerweise viele Commits für einen Feature-Zweig und rebase sie, bevor ich sie in Master zusammenführe. Das Ergebnis ist oft ein einzelnes Commit, das ein Feature hinzufügt, aber es können auch zwei oder mehr Commits sein, wenn dies sinnvoll ist. IMHO Es macht Sinn, wenn jedes Commit ein selbstenthaltender Patch ist. – hek2mgl

+1

ich zweite @ hek2mgl; Ich habe nicht das Gefühl, dass das Automatisieren von Commit-Nachrichten eine gute Übung ist. Sie sollten die Änderungen in Ihrem Code in der Übergabenachricht immer zusammen mit Warnungen, Kommentaren und Erklärungen zu Ihren Änderungen im Nachrichtentext des Commits (ohne Überschrift) beschreiben. Sie können immer auf das Problem im Körper verlinken, um eine Verbindung zwischen den Änderungen und der Feature-Anfrage/Fehlerdiskussion usw. zu halten. –

Antwort

0

Sie könnten ein Wrapper-Skript haben und dann Ihre bash-Autovervollständigung dafür schreiben. Dann würden Sie in der Befehlszeile z. git-commit oder commit als Ihr Befehl anstelle von git commit, und Sie würden die vollständige Kontrolle über die Autovervollständigung. (Ich habe bereits commit als ein Alias ​​für git commit, weil ich es so viel mache.)

Ich stimme allen obigen Kommentaren zu, wenn Sie dies in meinem Team tun würde ich enttäuscht sein; Sie sollten Zeit mit Ihren Commit-Protokollen verbringen und ein paar Details in das Programm schreiben und nicht versuchen, sie in einer Zeile zu finden. Aber das liegt an dir.

Verwandte Themen