给定带有消息“foo”的提交,即仅包含摘要部分,我执行git cherry-pick -x the_commit。结果是带有消息foo的新提交(从提交eb42a6475d2c2e4fff7a1b626ce6e27eec21e886中选取的樱桃)
现在不好了,因为它是两行总结,似乎是git中的错误。

但是,如何在不手动编辑注释的情况下使git使注释如下所示?

foo(从提交eb42a6475d2c2e4fff7a1b626ce6e27eec21e886摘来的樱桃)

最佳答案

您说对了,这似乎是对的,这是对的。您可以向git mailing list发送电子邮件,看看他们的想法!现在,您必须自己处理。

解决此问题的好方法是完全避免:使原始提交消息良好。如果它已经是多行,并且其中有空行,那么从Cherry-pick追加的行将不会弄乱格式。

要解决此问题,就像您说的那样,考虑到 cherry-pick 的提交具有单行消息,您可以对 cherry-pick 使用-e选项。如果您使用的是Vim,最坏的情况是必须打ggo<Esc>ZZ来处理它。

或者,您可以编写一个prepare-commit-msg Hook 。您需要的是:

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

10-08 19:33