Git 如何合并单个提交?

Git 如何合并单个提交?,git,merge,commit,Git,Merge,Commit,有时我同时与几个分支机构合作。假设我有称为master、release-1.1和experimental的分支。我创建了一个新文件或在实验中做了一个更改,我希望一个更改应用于其他分支 我可以用git做这个吗?如果我简单地将提交合并到另一个分支中,git会自动“快进”,并包含中间的任何提交。但是必须有某种方法来处理这个用例。您想要做的就是调用。可以使用以下命令选择单个提交: $ git cherry-pick <commit hash or name> $git樱桃果酱 这将仅将来

有时我同时与几个分支机构合作。假设我有称为master、release-1.1和experimental的分支。我创建了一个新文件或在实验中做了一个更改,我希望一个更改应用于其他分支


我可以用git做这个吗?如果我简单地将提交合并到另一个分支中,git会自动“快进”,并包含中间的任何提交。但是必须有某种方法来处理这个用例。

您想要做的就是调用。可以使用以下命令选择单个提交:

$ git cherry-pick <commit hash or name>
$git樱桃果酱

这将仅将来自该提交的更改合并到当前分支中。但是,请注意,这会创建一个新的提交;此新提交与cherry Pick提交有完全相同的更改(甚至相同的提交日期和作者),但从技术上讲,它是一个新提交,因此您将在中看到它是一个新提交,例如,
gitk
。您还必须为希望看到更改的每个分支执行cherry pick操作。

解决方案,但不幸的是,在进行更改之前,您需要知道的是,仅为该更改创建单独的分支(所谓的“主题分支””),脱离最早的分支或最早的提交,这是有意义的,并将此分支合并到需要此提交的任何分支中

在某些情况下,另一种解决方案是在维护分支中进行更改,将维护分支合并到稳定分支中,并将稳定分支合并到开发分支中


Junio C Hamano(Git维护者)在他的博客中写到了这一点:

你有那个博客条目的链接吗?我认为这会很有帮助,来自Git权威。很抱歉,樱桃采摘似乎比这更合适。@VonC:就是这个。谢谢(答案更新)@雷达:樱桃采摘会产生许多重复的提交,这可能会造成伤害。如果它是一个分支,那也没什么大不了的。