git cherry pick<commit>做什么?
当前回答
cherry-pick是Git的一个功能。如果有人想在一个分支中向目标分支提交特定的提交,那么使用cherry-pick。吉特樱桃镐步骤如下。
签出(切换到)目标分支。gitcherry-pick<提交id>这里提交id是另一个分支的活动id。吉特樱桃镐9772dd546a3609b06f84b680340fb84c5463264f推到目标分支
参观https://git-scm.com/docs/git-cherry-pick
其他回答
你可以想一想,如果樱桃采摘类似于重基,或者更确切地说,它是像重基一样管理的。我的意思是,它接受一个现有的提交,并以当前所在分支的负责人为起点重新生成它。
rebase接受一个具有父级X的提交,并重新生成该提交,就像它实际上具有父级Y一样,这正是cherry pick所做的。
Cherry pick更关注如何选择提交。使用pull(rebase),git会在拉到分支的内容上隐式地重新生成本地提交,但使用cherry-pick,您会显式地选择一些提交,并在当前分支上隐式重新生成。
因此,您的操作方式有所不同,但本质上它们是非常相似的操作-提交的再生。
此引用摘自: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简介
cherry-pick是Git的一个功能。如果有人想在一个分支中向目标分支提交特定的提交,那么使用cherry-pick。吉特樱桃镐步骤如下。
签出(切换到)目标分支。gitcherry-pick<提交id>这里提交id是另一个分支的活动id。吉特樱桃镐9772dd546a3609b06f84b680340fb84c5463264f推到目标分支
参观https://git-scm.com/docs/git-cherry-pick
Git中的樱桃采摘意味着从一个分支中选择一个提交并将其应用到另一个分支。
这与其他方法(如合并和重基)形成对比,后者通常将许多提交应用到另一个分支。
也可以选择多次提交,但合并是首选的选择方式。
确保您位于要应用提交的分支上。git开关主机执行以下操作:gitcherry-pick<提交哈希>
不适用:
如果你从公共部门挑选,你应该考虑使用gitcherry-pick-x<提交哈希>这将生成标准化的提交消息。这样,您(和您的同事)仍然可以跟踪提交的来源,并可能避免将来的合并冲突。如果您在提交时附加了注释,则它们不会遵循樱桃树。为了让他们也过来,你必须使用:gitnotes复制<from><to>
其他链接:
git官方指南页面git樱桃采摘指南
我准备了一步一步的插图,樱桃树做什么,以及这些插图的动画(接近尾声)。
樱桃采摘前(我们将从分支特性中选择提交L):
启动命令git cherry pick功能~2(功能~2是之前的第二次提交特征,即提交L):
执行命令后(git cherry-pick feature~2):
相同的动画:
注:
提交L’从用户的角度来看(提交=快照)是提交L的精确副本。
从技术上讲(内部),它是一个新的、不同的提交(因为例如,L包含指向K的指针(作为其父级),而L'包含指向e的指针)。
推荐文章
- Git在不改变提交时间戳的情况下进行改基
- VS 2017 Git本地提交数据库。每次提交时锁定错误
- 如何在过去的一些任意提交之间注入一个提交?
- 从GitHub克隆项目后拉git子模块
- GitHub上的分叉和克隆有什么区别?
- 递归地按模式添加文件
- 我如何使用notepad++(或其他)与msysgit?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- Git存储库中的悬垂提交和blob是什么?它们来自哪里?
- 我如何简单地从我最新的git提交创建一个补丁?
- Git显示“警告:永久添加到已知主机列表”
- 我如何检索一个回购的远程git地址?
- 如何列出提交,因为某些提交?
- 如何在不位于存储库的情况下执行Git命令?
- 为什么git在Windows下记不住我的密码