2010-11-15 2 views
6

Gegeben ein Commit mit der Nachricht "foo", d. H. Mit nur einer Zusammenfassung Teil, ich mache git cherry-pick -x the_commit. Das Ergebnis ist ein neues Commit mit der Nachricht git cherry-pick-x: link in details statt in zusammenfassung

foo
(cherry picked from commit eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)
Nun, das ist nicht gut, denn es ist eine zweizeilige Zusammenfassung, die wie ein Bug in Git scheint.

Aber wie kann ich git den Kommentar wie folgt aussehen lassen, ohne den Kommentar manuell zu bearbeiten?

foo

(cherry picked from commit eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)

Antwort

7

Sie haben Recht, dass es wie ein Versehen scheint. Sie können eine E-Mail an die git mailing list senden und sehen, was sie denken! Für den Moment müssen Sie es jedoch selbst handhaben.

Der gute Weg, damit umzugehen, wäre es, es ganz zu vermeiden: Machen Sie die ursprüngliche Commit-Nachricht gut. Wenn es bereits eine Mehrfachzeile ist und die Leerzeile dort ist, wird die angehängte Zeile aus dem Cherry-Pick das Format nicht vermasseln.

Um es zu umgehen, vorausgesetzt, dass die Kirsche ausgewählt Commit hat eine einzeilige Nachricht, wie Sie sagen, können Sie die -e Option für Cherry-Pick verwenden. Wenn Sie Vim verwenden, müssen Sie im schlimmsten Fall ggo<Esc>ZZ treffen, um sich darum zu kümmern.

Oder Sie könnten einen prepare-commit-msg-Hook schreiben. Alles, was Sie darin brauchen sollten, ist:

#!/bin/bash 
sed -i '2s/^(cherry picked/\n&' "$1" 
+0

Ich kann nicht die ursprünglichen Committer (d. H. Andere Leute) formatieren ihre Nachrichten auf diese Weise. Um die Nachricht manuell zu bearbeiten, scheint 'git commit -x -e' eine bessere Lösung zu sein. – StellarVortex

+0

In meinem vorherigen Kommentar meinte ich 'git cherry-pick -x -e'. (Kann nicht mehr bearbeitet werden.) – StellarVortex

+0

@stellar: Oh, Duh, du hast Recht. Ich habe vergessen, Cherry-Pick hatte diese Option. Froh, dass Sie eine Antwort von der Mailingliste bekommen haben! – Cascabel