关于git:合并我的分支中只有一个提交所包含的更改?

Merging the changes included by only one commit in my branch?

本问题已经有最佳答案,请猛点这里访问。

我过去和一个合伙人一起工作,我们每个人都在一个平行的分支机构工作。

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

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

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

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

解释:我的搭档在他们的档案里工作,我在我的档案里工作。但有时,我们中的一个会更改一个对两个文件都很常见的文件,所以我们只需要合并在commom文件中所做的更改。


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

江户十一〔一〕号

当将分支与cherry-picked提交合并时,Git应该能够在这些提交上快速前进,确保不会以重复的提交结束。

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

我的一个建议是,将这些承诺合并到您的主要分支中,而不是选择具体的承诺。这使你们两个更容易跟上时代。


我认为你要找的是樱桃精选:

1
git cherry-pick <commit>

检查:https://stackoverflow.com/a/9339460/3790546