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



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

分支 A -> 提交1 -> 提交消息"12345 Hello World">

我想在执行樱桃选择时在提交消息的开头添加一条新消息。所以在挑选樱桃之后,它应该看起来像,

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

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

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

至于为什么这是可能的逻辑,当你挑选一个提交时,你实际上是在做一个新的提交。 因此,没有什么额外的东西可以阻止您使用所需的任何提交消息。

从注释中,您希望自动进行编辑,而不是让 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-pickcmm 要使用的编辑器

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

谢谢大家的快速回复。我找到了以下有助于我的情况的方法。它将分两步完成。

  1. 使用 -n 挑选而不提交到目标。

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

    git commit -m <message>
    

相关内容

  • 没有找到相关文章

最新更新