git cherry-pick -x: ссылка в деталях, а не в резюме - PullRequest
6 голосов
/ 15 ноября 2010

Учитывая коммит с сообщением "foo", то есть только с краткой частью, я делаю git cherry-pick -x the_commit. Результатом является новый коммит с сообщением

foo<br>(cherry picked from commit eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)
Теперь это не хорошо, потому что это сводка из двух строк, которая выглядит как ошибка в git.

Но как сделать так, чтобы git сделал комментарий похожим на приведенный ниже, не редактируя его вручную?

foo<br><br>(cherry picked from commit eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)

1 Ответ

7 голосов
/ 15 ноября 2010

Вы правы, что это похоже на недосмотр. Вы можете отправить электронное письмо в список рассылки git и посмотреть, что они думают! Пока же вам придется справиться с этим самостоятельно.

Хороший способ справиться с этим - полностью его избежать: сделать оригинальное сообщение о коммите хорошим. Если он уже многострочный, с пустой строкой, добавленная строка из вишневого пика не испортит формат.

Чтобы обойти это, учитывая, что коммит с выбранной вишней имеет однострочное сообщение, вы можете использовать опцию -e для cherry-pick. Если вы используете Vim, в худшем случае вы должны нажать ggo<Esc>ZZ, чтобы позаботиться об этом.

Или вы можете написать обработчик prepare-commit-msg. Все, что вам нужно, это:

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