Git-Commit-Message in der Kommandozeile

Letzte Änderung am 24. Februar 2022 by Christoph Jüngling

In diesem Artikel gibt es ein paar Tipps, wie man per Kommandozeile eine Git-Commit-Message angibt. Das kann zum Beispiel sinnvoll sein, wenn man per Script irgendein Ergebnis committen will. Denn es muss ja nicht immer nur um Quellcode gehen.

Das empfohlene Format für die Git-Commit-Message sieht so aus:

Titel der Message

Weitere Informationen mit bis zu 72 Zeichen pro Zeile.
Weitere Zeilen sind ohne weiteres möglich.

Leerzeilen ebenfalls.

Die Besonderheit der ersten Zeile ist, dass sie z.B. mit dem Befehl git log --oneline als einziger Inhalt im Log auftaucht. Die weiteren Zeilen müssen dafür durch eine Leerzeile (Zeile 2) abgetrennt werden.

$ git log --oneline
b7cee03 Titel
19fc18a Titel
7d0b1c4 Titel

Um dies auf der Kommandozeile zu erreichen, muss zwischen Windows und Linux unterschieden werden, denn die Konsole unter Windows verfügt nicht über die Fähigkeit, Befehle über mehrere Zeilen zu verteilen.

Linux

Hier kann einfach weiter geschrieben werden. Die Linux-Shell erkennt automatisch, dass ein mit ” begonnener String noch nicht beendet ist und macht dies durch ein > am Zeilenanfang kenntlich. Erst wenn das abschließende ” eingegeben wurde, gefolgt von einem Zeilenvorschub, wird der Befehl als vollständig erkannt und ausgeführt. So lassen sich mehrzeilige Commit-Messages sehr einfach eingeben:

$ git commit -m "Titel
> 
> Weitere Informationen, die über mehrere Zeilen gehen können
> und auch Leerzeilen enthalten dürfen.
> 
> So zum Beispiel"
[master b7cee03] Titel
 1 file changed, 1 insertion(+)

Windows

Unter Windows ist das leider nicht so einfach. Die Windows-Shell erkennt das fehlende ” am Ende der Titelzeile nicht und führt den Befehl sofort nach dem Drücken der Returntaste aus. Freundlicherweise ignoriert Git, dass es nur ein ” hat und nimmt den Text (ohne das “) als Commit-Message auf, die dann aber nur aus einer Zeile besteht.

Um das gleiche zu erreichen wie oben für Linux beschrieben, muss der Befehl etwas abgewandelt werden:

C:> git commit -m "Titel" -m "Zweiter Block"
[master 76f731a] Titel
 1 file changed, 1 insertion(+), 1 deletion(-)

Hier hilft der Trick, den Parameter -m mehrfach einzugeben. Für jede weitere Verwendung wird automatisch eine Leerzeile in der späteren Commit-Message eingefügt, so dass das Ergebnis dann wie gewünscht aussieht.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

6 − 5 =