1080 Stimmen

Wie füge ich einen Zeilenumbruch zu 'git commit -m' von der Befehlszeile aus hinzu?

Ich verwende Git von der Befehlszeile aus und versuche, eine Zeilenumbruch zur Commit-Nachricht hinzuzufügen (mit git commit -m ""), ohne Vim zu verwenden.

Ist das möglich?

11 Stimmen

Als Anmerkung hier ein Link, der gute Konventionen für Commit-Meldungen zusammenfasst - github.com/erlang/otp/wiki/Writing-good-commit-messages, wenn es jemandem hilft.

8 Stimmen

Etwas in der Art von GIT_EDITOR="emacs" git commit -m 'Absatz1' -m 'Absatz2' -e würde Ihnen helfen, vim zu vermeiden.

957voto

Simon Richter Punkte 27154

Sicherlich hängt die Durchführung davon ab, welche Shell Sie verwenden. In Bash können Sie einfache Anführungszeichen um die Nachricht verwenden und die Anführungszeichen einfach offen lassen, was dazu führt, dass Bash nach einer weiteren Zeile fragt, bis Sie das Anführungszeichen schließen. So:

git commit -m 'Nachricht

geht
hierhin'

Alternativ können Sie ein "here document" (auch bekannt als heredoc) verwenden:

git commit -F- <<EOF
Nachricht

geht
hierhin
EOF

74 Stimmen

@Die Antwort von Peter Farmer erwähnt später, dass die Git-Konvention anscheinend so lautet: 1 Zeile für die Zusammenfassung, zwei Zeilenumbrüche, dann eine detaillierte Nachricht.

5 Stimmen

Auch, siehe unten Beitrag von @esse. Ein einfacher Zeilenumbruch erledigt das.

1 Stimmen

Genau genommen, siehe diesen Beitrag von @esse.

857voto

Simon Punkte 29389

Wenn Sie nur eine Überschrift und eine Inhaltszeile möchten, können Sie folgendes verwenden:

git commit -m "Meine Überschrift" -m "Meine Inhaltszeile."

Beachten Sie, dass dadurch separate Absätze erstellt werden - nicht Zeilen. Es wird also eine leere Zeile zwischen jedem -m Zeilen geben, z.B.:

Meine Überschrift

Meine Inhaltszeile.

0 Stimmen

Beim Verwenden von gitk werden diese als separate Nachrichten angezeigt, aber zum Glück funktioniert es.

115 Stimmen

Dies hat den Vorteil, dass es unter Windows funktioniert, wo die anderswo erwähnten Zitattricks nicht funktionieren. Separates -m für jede Zeile. Toll!

11 Stimmen

Nachrichten, die mit dieser Methode erstellt werden, werden korrekt auf GitHub, GitHub für Windows und TortoiseGit angezeigt.

448voto

esse Punkte 5371

Wenn Sie Git von der Befehlszeile mit Bash verwenden, können Sie folgendes tun:

git commit -m "das ist
> eine Zeile
> mit Zeilenumbrüchen
> vielleicht"

Geben Sie einfach ein und drücken Sie Enter, wenn Sie eine neue Zeile möchten. Das ">"-Symbol bedeutet, dass Sie Enter gedrückt haben, und es gibt eine neue Zeile. Andere Antworten funktionieren auch.

11 Stimmen

Abizerns Antwort hat für mich klargestellt, warum dies funktioniert - die Bash-Shell interpretiert einen Enter-Tastendruck als neue Zeile, bis das erste doppelte Anführungszeichen 'geschlossen' ist (mit einem nachfolgenden doppelten Anführungszeichen).

1 Stimmen

Ich muss zustimmen, dass dies eine viel effektivere, einfachere und praktischere Lösung ist als die akzeptierte Antwort. Es funktioniert gut für mich unter Verwendung von Git 1.8.2.1. +1 von mir.

2 Stimmen

Dies ist keine spezielle Funktion der Enter-Taste, sondern hängt eher mit den Anführungszeichen zusammen. Ob Sie doppelte oder einfache Anführungszeichen verwenden, spielt keine große Rolle, außer bei der Variablenexpansion und dem Escapen von Sonderzeichen - deshalb habe ich einfache Anführungszeichen in meiner Antwort gewählt.

171voto

Jon Crowell Punkte 20512

Zeilenumbrüche zu Ihrem Git-Commit hinzufügen

Versuchen Sie das Folgende, um eine mehrzeilige Commit-Nachricht zu erstellen:

git commit -m "Mehrzeilige Commit-Nachricht in PowerShell demonstrieren" -m "Fügen Sie nach -m in Anführungszeichen einen Titel zu Ihrem Commit hinzu,
fügen Sie dann den Text Ihres Kommentars nach einem zweiten -m hinzu.
Drücken Sie ENTER, bevor Sie die Anführungszeichen schließen, um einen Zeilenumbruch hinzuzufügen.
Wiederholen Sie dies bei Bedarf.
Schließen Sie dann die Anführungszeichen und drücken Sie zweimal ENTER, um den Commit anzuwenden."

Überprüfen Sie dann, was Sie getan haben:

git log -1

Sie sollten etwas Ähnliches erhalten:

Mehrzeilige Git-Commit-Nachricht in PowerShell

Der Screenshot stammt aus einem Beispiel, das ich mit PowerShell und Poshgit eingerichtet habe.

Dies funktioniert meines Wissens nach in allen Terminals und Betriebssystemen.

Hier ist ein Beispiel mit bash:

Mehrzeilige Commit-Nachricht in Git

Führt zu diesem Commit:

Mehrzeiliger Commit

11 Stimmen

Tolle Antwort. Ich habe schon seit Ewigkeiten gesucht und zahlreiche verschiedene Möglichkeiten ausprobiert, um meine Git-Commit-Nachrichten zu formatieren, aber das hier funktioniert am besten. Ich kann bestätigen, dass es am Prompt mit Git 1.8.2.1 funktioniert.

1 Stimmen

Im Powershell können Sie `n für Zeilenumbruch verwenden.

4 Stimmen

Es hat großartig für mich in Git Bash für Windows funktioniert.

138voto

Dennis Williamson Punkte 322329

Sie sollten in der Lage sein zu verwenden

git commit -m $'erste Zeile\nzweite Zeile'

Aus dem Bash-Handbuch:

Wörter der Form $'string' werden speziell behandelt. Das Wort erweitert sich zu string, wobei die mit dem ANSI C-Standard angegebenen mit Rückwärtsschrägstrichen escapten Zeichen ersetzt werden.

Dazu gehört die Unterstützung für Zeilenumbrüche, wie oben gezeigt, sowie Hex- und Unicode-Codes und andere. Gehen Sie zum verlinkten Abschnitt, um eine Liste der mit Rückwärtsschrägstrichen escapten Zeichen zu sehen.

0 Stimmen

@rsy: Welche Version von Bash benutzen Sie? Was sehen Sie, wenn Sie echo $'one\ntwo' ausführen?

1 Stimmen

Rsy $ bash --version GNU bash, Version 3.2.53(1)-Release (x86_64-Apple-Darwin13) Copyright (C) 2007 Free Software Foundation, Inc. Das Ergebnis dieses Befehls wird, wie erwartet, in zwei verschiedenen Zeilen angezeigt!

0 Stimmen

Für mich auf Windows 7 ist dies die beste Option. Vielen Dank

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