git只从分支推送一个提交

时间:2015-10-19 12:32:21

标签: git git-branch git-push git-commit

我在C1中有一个提交master。之后我已经扩展并在分支中进行了提交C2。现在我想只将提交C2推送到master。(C1尚未准备好被推送)如何做到这一点..

    C2(branch)
  /
|
|
C1 (master)

谢谢..

2 个答案:

答案 0 :(得分:0)

您可以使用git cherry-pick并指定要合并的提交ID

git cherry-pick C2 

只会将提交C2合并到主分支

答案 1 :(得分:0)

首先,你的措辞有点令人困惑:在谈论push时,总会有一个遥控器。因此,git pushbranchmaster而不是origin/master branch。{/ p>

如果我理解正确,这里是如何从您的分支origin/master推送一个提交到tmp-for-pushing

从上一个推送的修订版中查看新的本地分支git fetch origin && git checkout -b tmp-for-pushing origin/master

C2

Cherry-pick git cherry-pick C2 进入这个分支:

git push origin tmp-for-pushing:master

发布此单一提交:

git checkout master

到目前为止,您更新了遥控器,但我们需要再次清理。

再次结帐大师:

git branch -D tmp-for-pushing

扔掉你的临时分支

origin/master

将rebase master重新加入更新后的git fetch origin && git rebase origin/master

master

将C2重新定位到更新的C2(如果C2是唯一的提交,master将等于git checkout branch && git rebase master 之后:

<MasterDetailPage
 [...]
 Style="{DynamicResource PageStyle}">
</MasterDetailPage>