如何使用从一个Git分支到另一个Git分支的樱桃挑选?

时间:2018-07-03 11:12:39

标签: git cherry-pick git-cherry-pick

我正在尝试从一个分支到另一个分支挑选一个提交。请考虑以下情形。

分支A-> commit1->提交消息“ 12345 Hello World”

我想在进行樱桃挑选的同时在提交消息的开头添加新消息。因此,在摘樱桃之后,它应该看起来像

分支B-> commit2->提交消息“ 98765 ........”

我要添加98765,这是额外的消息。在Git文档中,我找到了一个命令“ git cherry-pick --edit”,但没有找到任何示例来理解其正确用法。

3 个答案:

答案 0 :(得分:2)

关于git cherry-pick --edit的解释不多。如果您选择--edit选项,Git将在提交之前弹出提交消息编辑器窗口。在那里,您可以根据需要自定义提交消息。

关于为什么的后勤工作是有可能的,当您选择提交时,您实际上是在进行 new 提交。因此,没有什么可以阻止您使用所需的任何提交消息的了。

答案 1 :(得分:0)

从注释中,您想要的是使编辑自动进行,而不是让git在编辑器窗口中向您显示提交消息。

为此,编写一个脚本以所需的方式编辑消息。您的脚本将收到一个文件名作为其第一个命令行参数,并且它必须就地更新该文件。例如,您可以使用类似于以下内容的perl脚本:

open my $fh, '+<', $ARGV[0] or die;

local $/ = undef;
my $a = <$fh>;

seek $fh,0,0;
print $fh "new content $a";

close $fh;

然后,您可以将此脚本指定为cherry-pick cmmand使用的编辑器

git -c core.editor="perl /path/to/your/script.pl" cherry-pick --edit <commit>

答案 2 :(得分:0)

感谢大家的快速反应。我发现下面的方式对我的情况有帮助。这将分两步完成。

  1. 不使用-n提交给目标的樱桃选择。

    git cherry-pick -n <hash>
    
  2. 然后执行提交操作。

    git commit -m <message>