353 Stimmen

Eine Git-Commit-Nachricht mit einem Hashtag (#) beginnen

Git behandelt Zeilen, die mit # als Kommentarzeilen beim Übertragen. Dies ist sehr ärgerlich, wenn man mit einem Ticketverfolgungssystem arbeitet und versucht, die Ticketnummer an den Anfang der Zeile zu schreiben, z. B.

#123 salt hashed passwords

Git entfernt die Zeile einfach aus der Commit-Nachricht. Gibt es eine Möglichkeit, den Hash zu umgehen? Ich habe versucht \ y ! aber nichts funktioniert. Whitespace vorher # beibehalten wird, also ist das auch keine funktionierende Lösung für das Problem.

282voto

CB Bailey Punkte 693084

Dieses Verhalten ist Teil der git commit Standardverhalten beim Aufräumen". Wenn Sie Zeilen beibehalten wollen, die mit # können Sie einen alternativen Bereinigungsmodus verwenden.

z.B.

git commit --cleanup=whitespace

Wenn Sie dies tun, müssen Sie darauf achten, dass Sie alle # Zeilen, die nicht in der Übertragung erscheinen sollen.

161voto

VonC Punkte 1117238

Beachten Sie, dass, da git1.8.2 (Februar 2013) können Sie ein anderes Zeichen als '' verwenden. # ' für die kommentierte Zeile in der Commit-Nachricht.

Dies ermöglicht Ihnen die Verwendung von ' # ' als Referenz für Ihre Fehlernummer.

Verschiedene "Hinweiszeilen", die Git ausgibt, wenn es den Benutzer auffordert, Nachrichten im Editor zu bearbeiten, werden mit '' auskommentiert. # ' standardmäßig.

En core.commentChar Konfigurationsvariable kann verwendet werden, um diese ' # ' auf ein anderes Zeichen.


Theoretisch können Sie könnte einfügen core.commentChar Wort (mehrere Zeichen), aber Git 2.0.x/2.1 wird strenger sein (3. Quartal 2014).

Voir 50b54fd übergeben von Nguyen Thái Ngoc Duy ( pclouds ) :

config: streng auf core.commentChar achten

Wir unterstützen keine Kommentare Zeichenketten (zumindest noch nicht). Und die Kodierung von Mehr-Byte-Zeichen könnte ebenfalls falsch interpretiert werden.

Der Test mit zwei Kommas wird aktualisiert, weil er dagegen verstößt. Es wird mit dem Patch hinzugefügt, dass stellt vor core.commentChar in eff80a9 (Benutzerdefinierte "Kommentarzeichen" zulassen - 2013-01-16). Es ist nicht klar für mich warum dieses Verhalten erwünscht ist.


git 2.0.x/2.1 (Q3 2014) wird eine automatische Auswahl für core.commentChar :
Siehe 84c9dc2 festlegen

Wenn core.commentChar ist " auto ", das Kommentarzeichen beginnt mit ' # ' wie in Standard, aber wenn es bereits in der vorbereiteten Nachricht enthalten ist, finden Sie ein anderes Zeichen in einer kleinen Teilmenge. Dies sollte Überraschungen verhindern, weil Git einige Zeilen unerwartet entfernt.

Beachten Sie, dass git nicht intelligent genug ist, um ' # ' als Kommentarzeichen in benutzerdefinierten Vorlagen und konvertieren es, wenn das endgültige Kommentarzeichen anders ist.
Es betrachtet '#'-Zeilen in benutzerdefinierten Vorlagen als Teil der Übergabemeldung. Verwenden Sie dies also nicht mit benutzerdefinierten Vorlagen.

Die Liste der in Frage kommenden Zeichen für "auto" sind:

# ; @ ! $ % ^ & | :

Das bedeutet, dass ein Befehl wie git commit -m '#1 fixed issue' wird das commentChar automatisch auf ' ; ', denn ' # ' wurde in der Commit-Nachricht verwendet.

110voto

Matthieu Napoli Punkte 45122

Die Antworten hier sind gut und detailliert, aber für einen Git-Neuling wie mich ist die Anpassung der Git-Konfigurationsoptionen nicht so offensichtlich. Hier ist ein Beispiel zum Ändern von # a ; für Kommentarzeichen:

git config core.commentChar ";"

Das ist alles, was Sie tun müssen.

65voto

Olivier Verdier Punkte 43894

Sie können die Kommandozeilenoption -m :

git commit -m "#123 fixed"

51voto

Owain Williams Punkte 2077

Wenn Sie ein interaktives Rebase durchführen, wird beim Speichern Ihrer Commit-Nachricht nichts gespeichert (weil die # am Anfang hat es zu einem Kommentar gemacht und wurde daher ignoriert) zeigt Ihnen git, was zu tun ist:

Aborting commit due to empty commit message.
Could not amend commit after successfully picking 5e9159d9ce3a5c3c87a4fb7932fda4e53c7891db... 123 salt hashed passwords
This is most likely due to an empty commit message, or the pre-commit hook
failed. If the pre-commit hook failed, you may need to resolve the issue before
you are able to reword the commit.
You can amend the commit now, with

        git commit --amend

Once you are satisfied with your changes, run

        git rebase --continue

Ändern Sie also einfach die Nachricht:

git commit --amend -m "#123 salt hashed passwords"

und setzen Sie die Umbasierung fort:

git rebase --continue

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X