我在master
中有一个提交C1
。我在那之后进行了分支,并在分支中提交了C2
。现在我想推只提交C2
到master
.(C1
还没有准备好被推)如何做到这一点…
C2(branch)
/
|
|
C1 (master)
谢谢. .
你可以使用git cherry-pick指定你想要合并的提交id
git cherry-pick C2
将只合并提交C2到主分支
首先,你的措辞有点令人困惑:当谈论push
时,总是涉及到远程。所以你不是把git push
从branch
变成master
,而是变成origin/master
。
如果我理解正确的话,下面是如何将一个提交从分支branch
推送到origin/master
的方法
从上次推送的版本中检查新的本地分支tmp-for-pushing
:
git fetch origin && git checkout -b tmp-for-pushing origin/master
选择C2
到这个分支:
git cherry-pick C2
Publish this single commit:
git push origin tmp-for-pushing:master
到目前为止,您已经更新了您的遥控器,但是我们需要再次清理。
再次Checkout master:
git checkout master
扔掉你的临时分支
git branch -D tmp-for-pushing
将主机重置到已更新的origin/master
上
git fetch origin && git rebase origin/master
将C2重置到更新后的master
上(如果C2
是唯一的提交,C2
将在此之后等于master
):
git checkout branch && git rebase master