git merge -F - liest nicht von der Standardeingabe
Bei git commit ist es gängige Praxis, eine mehrzeilige Nachricht per Here-Dokument zu übergeben. Bei git merge sieht dasselbe Muster genauso aus – funktioniert aber nicht.
Terminal
# funktioniert git commit -F - <<'MSG' Mehrzeilige Nachricht MSG # bricht ab: error: could not read file '-' git merge --no-ff develop -F - <<'MSG' Merge develop: ... MSG
Tückisch ist die Kombination aus zwei Eigenschaften: Die Fehlermeldung nennt nur den Dateinamen - und klingt nach einem Tippfehler, und der Merge wird nicht ausgeführt. In einem Skript, das den Rückgabewert nicht prüft, sieht es hinterher so aus, als sei nichts passiert – der Branch steht unverändert da.
Der Weg, der funktioniert
MSGF=$(mktemp) cat > "$MSGF" <<'MSG' Merge develop: Zusammenfassung Details ... MSG git merge --no-ff develop -F "$MSGF" rm -f "$MSGF"
Alternativ tut es für kurze Nachrichten -m, das mehrfach angegeben werden darf und je Angabe einen Absatz erzeugt. Für Deploy-Skripte gilt ohnehin: nach jedem git-Aufruf den Rückgabewert prüfen, statt sich auf die Ausgabe zu verlassen.
Erstellt am: