樱桃挑选是不是从源分支中删除提交?

Posted

技术标签:

【中文标题】樱桃挑选是不是从源分支中删除提交?【英文标题】:Does cherry-pick remove the commit from the origin branch?樱桃挑选是否从源分支中删除提交? 【发布时间】:2016-05-30 09:05:58 【问题描述】:

假设我已经从master branch 中挑选出提交comm1branch foo。在成功挑选樱桃后,提交comm1 是否会从branch master 中删除,或者只是复制到branch foo 中?

【问题讨论】:

A copy: cherry-pick is a new commit applying the same diff elsewhere. What does cherry-picking a commit with git mean?的可能重复 它将在 foo 分支上创建新的提交并保持 master 不变。如果您想了解更多详细信息,请查看文档:git-scm.com/docs/git-cherry-pick 【参考方案1】:

它将复制提交的增量并在活动分支中创建一个新的提交。

当您问自己有关Git 将修改什么的问题时,请记住您只能修改活动分支。因此,如果您的活动分支是development,并且您正在从分支feature/test 中挑选提交,则您只能修改development 而不能修改feature/test。这样就可以推断feature/test中的commit不会受到影响。

【讨论】:

不是提交的内容,提交的增量是前任。在我看来,这是一个巨大的差异。 Cherry-Picking 提交包含 file1 file2 file3 并添加 file4 不会在不包含它们的分支中创建 file1-3 。它只会将 file4 添加到此分支。请记住,提交始终是整个存储库的快照,没有增量。 @BlackEye 感谢您的指正。在我的脑海中,很明显我所说的提交的 content 是增量,但它是错误的术语,它可能会使新的 git 用户感到困惑。【参考方案2】:

简单地说,它将特定的更改(提交)合并到目标分支中。合并不会影响源分支,所以肯定不会被删除。

因此,当您稍后进行完全合并时,git 将已经知道此更改已集成并会跳过它。

【讨论】:

以上是关于樱桃挑选是不是从源分支中删除提交?的主要内容,如果未能解决你的问题,请参考以下文章

合并分支,从当地分支机构挑选樱桃,没有任何冲突

Git在拉取请求分支上恢复樱桃选择而不在主控上恢复

樱桃选择合并

重新提交在 git 中恢复的提交

在 Git 中,如何在不挑选新分支的情况下对历史中具有多个合并提交的分支进行 rebase + squash

如何挑选多个提交