Verwendung eines Ausrufezeichens in einer Git-Commit-Nachricht über die Befehlszeile

152

Wie gebe ich ein Ausrufezeichen in eine Git-Commit-Nachricht über die Befehlszeile ein?

Es ist möglich, das Ausrufezeichen mit einem Backslash zu umgehen, aber dann endet der Backslash auch in der Commit-Nachricht.

Ich möchte so etwas:

git commit -am "Nailed it!"
Daniel X Moore
quelle
6
Für eine Erklärung, warum dieses Problem überhaupt besteht: askubuntu.com/questions/434832/…
Mark Amery

Antworten:

226

Verwenden Sie einfache Anführungszeichen anstelle von doppelten Anführungszeichen

git commit -am 'Nailed it!'

Wenn Sie aus irgendeinem Grund doppelte Anführungszeichen verwenden müssen, aber dennoch ein Literal möchten, deaktivieren Sie alternativ !die Verlaufserweiterung oben in Ihrem Skript überset +H

SiegeX
quelle
48
Oder mischen Sie einfach Ihre Zitate:git commit -am "$FOO: Nailed it"'!'
Cascabel
4
In OS X funktionierte dies nicht für mich, daher habe ich nur git commit(no -m) verwendet, um einen Texteditor für meine Nachricht zu öffnen.
Kevin C.
In OSX verwenden Sie git commit -m "This is the best code ever"!wie in @Ryan H. Antwort beschrieben.
mljrg
42

Eine andere Möglichkeit, dies zu lösen, besteht darin, ein Leerzeichen danach hinzuzufügen ! mögen:

git commit -am "Nailed it! "

Beachten Sie den Abstand zwischen ! und der letzte " .

(Der Speicherplatz wird nicht in die Festschreibungsnachricht aufgenommen. Git schneidet nachgestellte Leerzeichen automatisch von Festschreibungsnachrichten ab.)

nicky_zs
quelle
3
Dies scheint mir die einfachste Lösung zu sein und erlaubt doppelte Anführungszeichen mit variabler Interpolation: git commit -m "$(sillyname) $(buzzphrase). $(superb)! ":)
Alex Hall
4

Sie müssen sich stattdessen nicht daran erinnern, welche Anführungszeichen oder Escapezeichen verwendet werden sollen

  1. Geben Sie Ihren Befehl (oder einen Teil davon) ein.
  2. Drücken Sie in Ihrer Befehlszeile Ctr X E», um Ihren" externen Editor "zu öffnen.
  3. Bearbeiten Sie Ihren Befehl und schließen Sie Ihren Editor.

… Der Befehl wird ausgeführt und alle Sonderzeichen werden korrekt in der Git-Commit-Nachricht angezeigt!

(Hinweis: Viele andere Verwendungszwecke: Eingeben komplexer Befehle, Hinzufügen von Zeilenumbrüchen in Ihrer Festschreibungsnachricht usw.)

PDK
quelle
4

Wenn Sie doppelte Anführungszeichen verwenden müssen und das !letzte Zeichen in der Nachricht ist, behalten Sie nur die !Außenseite der Anführungszeichen bei , da wir nur Anführungszeichen verwenden, damit die Leerzeichen in die Nachricht aufgenommen werden.

git commit -m "Reverting last commit because I don't like it"!

Wenn Sie eine !mittlere Zeichenfolge einfügen müssen, können Sie einfache Anführungszeichen verwenden. Wenn Sie jedoch ein wörtliches einfaches Anführungszeichen verwenden müssen, müssen Sie Ihr Anführungszeichen schließen und dann die 'Außenseite der Zeichenfolge einfügen, indem Sie es maskieren. Nehmen wir also an, Ihre Nachricht lautet I don't like it! Reverting again!: Dies kann mit 'I don'+ \'+ zusammengesetzt werden't like it! Reverting again!'

git commit -m 'I don'\''t like it! Reverting again!'

Alles, was komplizierter ist, ist wahrscheinlich besser dran git commitund lässt Git deinen Standard-Texteditor aufrufen :)

Ryan H.
quelle
1

Sie können auch Folgendes eingeben:

git commit -am "Nailed it
!
"

Drücken Sie einfach die Eingabetaste, setzen Sie das Ausrufezeichen in eine neue Zeile und schließen Sie die Festschreibungsnachricht. Fand das eines Tages zufällig heraus.

cg22
quelle
6
Dadurch wird die wörtliche neue Zeile vor dem Ausrufezeichen in die Commit-Nachricht eingefügt, was hässlich ist. -1.
Mark Amery
-3

Hmm. Wenn ich mit einem Schrägstrich davonkomme, wird dies für mich nicht in der Festschreibungsnachricht angezeigt.

git commit -m "Nailed it\!"
Steve Geluso
quelle