樱桃采用git的提交是什么意思?

最近,我被要求选樱桃。 但我不知道这是什么意思。 那么cherry picking在git中cherry picking一个提交是什么意思? 你怎么做呢?

在git中挑选樱桃意味着从一个分支中select一个提交并将其应用到另一个分支上。

这与merge和重新rebase等其他方式形成鲜明对比。

  1. 确保你在你想要应用提交的分支上。

    git checkout master

  2. 执行以下操作:

    git cherry-pick <commit-hash>

注意:

  1. 如果你从公共部门挑选,你应该考虑使用

    git cherry-pick -x <commit-hash>

    这将生成一个标准化的提交消息。 这样,你(和你的同事)仍然可以跟踪提交的起源,并可以避免将来的合并冲突。

  2. 如果你有提交附注,他们不会遵循樱桃挑选。 为了把它们也带过来,你必须使用:

    git notes copy <from> <to>

其他链接:

  • git官方指南页面

在Git中挑选樱桃的目的是将一个分支提交到另一个分支。 这可以做,如果你例如。 犯了一个错误,改变了错误的分支,但不想合并整个分支。 你可以例如。 恢复提交并在另一个分支上select它。

要使用它,你只需要git cherry-pick hash ,其中hash是来自其他分支的提交散列。

有关完整程序,请参阅: http : //technosophos.com/2009/12/04/git-cherry-picking-move-small-code-patches-across-branches.html

这个引用来自于; 版本控制与Git (真正伟大的书,我鼓励你购买它,如果你有兴趣在GIT)

使用git cherry-pick命令git cherry-pick commit应用当前分支上的命名提交引入的更改。 它将引入一个新的,独特的提交。 严格来说,使用git cherry-pick不会改变存储库中的现有历史; 相反,它增加了历史。 与其他Git操作一样,通过应用diff来引入更改,您可能需要解决冲突以完全应用来自给定提交的更改 。 命令git cherry-pick通常用于从存储库中的一个分支向特定的分支中引入特定的提交。 一个常见的用途是将提交从维护分支提交或者提交到开发分支。

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

之前: 之前

后: 后

希望这可以帮助人们更好地理解樱桃select:

Git樱桃采摘图解释

樱桃采摘是一个GITfunction。 如果有人想提交相同的提交在一个分支目标分支然后select樱桃。
git樱桃挑选步骤如下。

  1. 结帐(切换到)目标分支。
  2.  git cherry-pick <commit id> 

    这里的提交ID是另一个分支的活动ID。

     git cherry-pick 9772dd546a3609b06f84b680340fb84c5463264f 
  3. 推到目标分支

访问https://git-scm.com/docs/git-cherry-pick

你可以认为,如果一个樱桃select类似于rebase,或者更确切地说,它是像一个rebasepipe理。 我的意思是,它需要一个现有的提交,并重新把它作为你现在的分支头的起点。

一个rebase需要一个父母X的提交,并重新提交,就好像它实际上有一个父母Y一样,这正是樱桃select所做的。

樱桃挑选更多关于你如何select提交,拉(底座)它隐式地重新生成您的本地提交什么是拉到你的分支之上,但与樱桃select你明确select一些提交(S),并隐式地重新生成(他们)当前分支的顶部。

所以你这样做的方式不同,但在引擎盖下它们是非常类似的操作 – 提交的再生。

这是一种复制(从某处)和粘贴(到某处)。 如果你想做热修复(假设),那么你可以采取樱桃挑选function的帮助。 在开发分支和合并开发中采取类似的方式从发布到发布.Voila