Git-Commit mit stdout von Bash?

Git-Commit mit stdout von Bash?

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

echo "Test commit" | git commit -

Habe auch versucht, den Nachrichteninhalt in wiederzugeben .git/COMMIT_EDITMSG, aber beim Ausführen git commitwurde ich aufgefordert, Änderungen in der genannten Datei vorzunehmen.

Antwort1

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

echo "Test commit" | git commit -F -

Die Verwendung wird auf der Manpage für beschrieben git commit:

Übernehmen Sie die Commit-Nachricht aus der angegebenen Datei. Verwenden Sie -, um die Nachricht von der Standardeingabe zu lesen.

Antwort2

Sie können dafür jederzeit eine kleine Funktion schreiben:

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

Fügen Sie das zu Ihrer ~/.bashrcShell oder einem entsprechenden Befehl 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

verwandte Informationen