git cherry-pick -x : link in details instead of in summary

标签 git cherry-pick

给定带有消息“foo”的提交,即只有摘要部分,我执行 git cherry-pick -x the_commit。结果是带有消息的新提交

foo
(cherry picked from commit eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)
现在这不好,因为它是两行摘要,这似乎是 git 中的一个错误。

但是我怎样才能让 git 在不手动编辑评论的情况下使评论看起来像下面这样呢?

foo

(cherry picked from commit eb42a6475d2c2e4fff7a1b626ce6e27eec21e886)

最佳答案

你是对的,这似乎是一个疏忽。您可以发送电子邮件至 git mailing list看看他们怎么想!不过现在您必须自己处理。

处理这个问题的好方法是完全避免它:使原始提交消息良好。如果它已经是多行的,其中有空行,则 cherry-pick 的附加行不会搞砸格式。

要解决这个问题,假设精心挑选的提交有一条单行消息,如您所说,您可以使用 -e cherry-pick 的选项。如果你正在使用 Vim,最坏的情况你必须点击 ggo<Esc>ZZ照顾它。

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

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

关于git cherry-pick -x : link in details instead of in summary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4184920/

相关文章:

git - Hudson git 插件不会在 Linux 上克隆 repo

git - Codeship 上每个部署管道的不同 ENV 变量

git - read-tree 命令用法的基本示例

git - 在哪里可以找到 git 发行说明?

git - 择优选择二进制 merge 与文本文件的冲突

git - 在 GIT 上推送更改时出错。引用名称必须遵循 git ref-format 规则

java - Eclipse 和外部 src 和 web 内容文件夹链接或映射

Git:当完全相同的冲突再次发生时,我可以 "cherry-pick" merge 冲突解决方案吗?

git - 如何使用cherry-pick从一个Git分支到另一个分支?

git - 在这些场景下使用 git cherry-pick 是否合适?