git cherry-pick -x: ссылка в деталях, а не в резюме

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

 Foo 
(вишня выбрана из коммита eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)
Теперь это не хорошо, потому что это сводка из двух строк, которая выглядит как ошибка в git.

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

 Foo 

(вишня выбрана из коммита eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)

1 ответ

Решение

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

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

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

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

#!/bin/bash
sed -i '2s/^(cherry picked/\n&' "$1"
Другие вопросы по тегам