如何合并Git中的特定提交

如何合并Git中的特定提交

我在GitHub的一个存储库中分叉了一个分支,并提交了一些特定于我的内容。现在,我发现原始存储库有一个很好的特性,即HEAD.

我只想合并它,没有以前的提交。我该怎么办?我知道如何合并所有提交:

git branch -b a-good-feature
git pull repository master
git checkout master
git merge a-good-feature
git commit -a
git push


牧羊人nacy
浏览 1797回答 3
3回答

饮歌长啸

'git cherry-pick“这应该是你的答案。应用现有提交引入的更改。别忘了读书布伦兰关于在这篇文章中摘樱桃的后果的回答:将所有提交从一个分支中拉出,将指定提交推到另一个分支,其中:A-----B------C  \   \    D变成:A-----B------C  \   \    D-----C'此提交的问题在于git认为提交包含它们之前的所有历史记录。其中C‘有一个不同的SHA-1身份证。同样,樱桃从一个分支选择一个提交到另一个分支基本上包括生成一个补丁,然后应用它,这样也就失去了历史。提交ID的这种变化破坏了git的合并功能和其他功能(不过,如果使用得少,就会有一些启发来解决这个问题)。更重要的是,它忽略函数依赖-如果C实际上使用了B中定义的函数,您将永远不会知道.

温温酱

您可以使用giterry-select将单个提交单独应用到当前分支。例子:git cherry-pick d42c389f

侃侃无极

让我们试着以一个例子来理解:我有一根树枝,比如说师父,指向X<COMMIT-id>,并且有一个指向Y<SHA 1>的新分支。哪里Y<COMMIT-id>=<master>分支提交-很少提交现在说Y分支,我必须差距-关闭主分支和新分支之间的提交。以下是我们可以遵循的程序:步骤1:git&nbsp;checkout&nbsp;-b&nbsp;local&nbsp;origin/new其中本地是分支名称。任何名字都可以。步骤2:&nbsp;&nbsp;git&nbsp;merge&nbsp;origin/master&nbsp;--no-ff&nbsp;--stat&nbsp;-v&nbsp;--log=300将提交从主分支合并到新分支,并创建日志消息的合并提交,其中包含最多来自正在合并的实际提交的一行描述。有关Git合并的更多信息和参数,请参见:git&nbsp;merge&nbsp;--help此外,如果需要合并特定的提交,则可以使用:git&nbsp;cherry-pick&nbsp;<commit-id>
打开App,查看更多内容
随时随地看视频慕课网APP