git cherry pick<commit>做什么?


当前回答

这有点像复制(从某处)和粘贴(到某处),但用于特定的提交。

例如,如果您想进行热修复,那么可以使用樱桃采摘功能。

在一个开发分支中进行樱桃采摘,并将其合并到一个发布分支中。同样,从一个释放树枝上摘樱桃给主人。沃伊拉

其他回答

当您与一个项目开发团队合作时,管理多个git分支之间的更改可能会成为一项复杂的任务。有时您不想将整个分支合并到另一个分支中,只需要选择一个或两个特定的提交。这个过程叫做“樱桃采摘”。

找到了一篇很棒的关于樱桃采摘的文章,请查看详细信息:https://www.previousnext.com.au/blog/intro-cherry-picking-git

Git中的樱桃采摘意味着从一个分支中选择一个提交并将其应用到另一个分支。

这与其他方法(如合并和重基)形成对比,后者通常将许多提交应用到另一个分支。

也可以选择多次提交,但合并是首选的选择方式。

确保您位于要应用提交的分支上。git开关主机执行以下操作:gitcherry-pick<提交哈希>

不适用:

如果你从公共部门挑选,你应该考虑使用gitcherry-pick-x<提交哈希>这将生成标准化的提交消息。这样,您(和您的同事)仍然可以跟踪提交的来源,并可能避免将来的合并冲突。如果您在提交时附加了注释,则它们不会遵循樱桃树。为了让他们也过来,你必须使用:gitnotes复制<from><to>

其他链接:

git官方指南页面git樱桃采摘指南

当你需要樱桃采摘时,情况的简短示例

考虑以下场景。你有两个分支。a) release1-该分支机构将面向您的客户,但还有一些bug需要修复。b) master-经典主分支,例如可以在其中添加版本2的功能。

现在:你在release1中修复了一些东西。当然,您也需要在master中进行此修复。这是樱桃采摘的典型用例。因此,在这个场景中,cherry-pick意味着您从release1分支获取提交并将其包含到主分支中。

此引用摘自:Git版本控制

使用gitcherry-pick命令gitcherri-pick-commit应用命名提交在当前分支上引入的更改。它会引入一个新的、不同的提交。严格来说,使用gitcherry pick不会改变存储库中的现有历史;相反,它增加了历史。与其他Git操作一样通过应用diff的过程引入更改,您可能需要解决冲突以完全应用给定提交中的更改。gitcherry-pick命令通常用于介绍从存储库中的一个分支提交到另一个分支。A.常见的用法是从维护中转发或返回端口提交分支到开发分支。

$ git checkout rel_2.3
$ git cherry-pick dev~2 # commit F, below

之前:

之后:

此外,这里有一个非常棒的视频教程:Youtube:Gitcherry-pick简介

如果要在没有提交ID的情况下进行合并,可以使用以下命令

git cherry-pick master~2 master~0

上面的命令将主服务器的最后三次提交从1合并到3

如果要对单个提交执行此操作,只需删除最后一个选项

git cherry-pick master~2

这样,您将合并从master结尾的第三个提交。