Git Commit mit stdout von bash?

8

Ist es möglich, eine Commit-Nachricht von stdout zu verwenden, wie:

echo "Test commit" | git commit -

Es wurde auch versucht, den Nachrichteninhalt wiederzugeben .git/COMMIT_EDITMSG, aber beim Ausführen werden Sie git commitaufgefordert, Änderungen in der genannten Datei hinzuzufügen.

Flüchtling
quelle

Antworten:

20

Sie können die -F <file>, --file=<file>Option verwenden.

echo "Test commit" | git commit -F -

Seine Verwendung wird in der Manpage beschrieben für git commit:

Nehmen Sie die Festschreibungsnachricht aus der angegebenen Datei. Verwenden Sie -, um die Nachricht von der Standardeingabe zu lesen.

Anthony Geoghegan
quelle
1
Verpasste diese Option beim Lesen man:) Danke!
Flüchtling
5

Sie könnten immer eine kleine Funktion dafür schreiben:

gcm(){ 
    read message
    git commit -m "$message" "$@"
}

Fügen Sie das zu Ihrer ~/.bashrcoder einer Entsprechung für Ihre Shell hinzu und führen Sie dann Folgendes aus:

echo "Test commit" | gcm filename.to.commit

Der obige Befehl wird ausgeführt

git commit -m "Test commit" filename.to.commit
terdon
quelle
1
Ich denke du meintest echo "Test commit" | gcm filename.to.commit.
user2313067
@ user2313067 d'oh! Ja, das habe ich natürlich getan. Vielen Dank!
Terdon