合并我的分支中只有一个提交包含的更改? [复制]

Posted

技术标签:

【中文标题】合并我的分支中只有一个提交包含的更改? [复制]【英文标题】:Merging the changes included by only one commit in my branch? [duplicate] 【发布时间】:2018-05-29 14:20:15 【问题描述】:

我曾经和一个合作伙伴一起工作,我们每个人都在一个平行的分支中工作。

有时,我想合并他已提交的一些更改,但我不想合并他分支中的所有提交。

如果我合并他的分支,我将合并他的分支和所有这些祖先所指出的提交。这不是我想要的。

如果我合并一个特定的提交,我将合并该提交和所有这些祖先。这不是我想要的。

如何在不合并其祖先的情况下合并分支中仅一个提交所包含的更改?

解释:我的伙伴在他们的文件中工作,我在我的文件中工作。但有时,我们中的一个人更改了一个对双方都通用的文件,因此我们只需要合并在 commom 文件中所做的更改。

【问题讨论】:

【参考方案1】:

cherry-pick 在这种情况下确实是您想要的。它允许您指定一个提交哈希以应用于您当前的分支:

git cherry-pick <commit>

在将分支与精选提交合并时,git 应该能够快进这些提交,确保您不会出现重复提交。

此流程的一个问题是,如果在精心挑选的提交中发现了问题。需要将更改应用于您的两个分支。

我的建议不是挑选提交,而是将这些提交合并到您的主分支中。这让你们双方都更容易保持最新状态。

【讨论】:

【参考方案2】:

我认为樱桃采摘是您正在寻找的:

git cherry-pick <commit>

检查这个:https://***.com/a/9339460/3790546

【讨论】:

以上是关于合并我的分支中只有一个提交包含的更改? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

git远程存储库包含未合并到本地分支的提交

您如何合并已恢复的提交?

如果我提交到一个分支然后我从另一个分支拉到我的分支上,我第一次提交的更改是不是已保存? [复制]

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

Cherry 选择从开发分支到部署分支的父合并提交

撤消 Git 分支提交和合并