【发布时间】:2016-01-17 19:18:37
【问题描述】:
我在master 中有一个提交C1。之后我已经分支并在分支中提交了C2。现在我只想将提交C2 推送到master。(C1 还没有准备好被推送)怎么做..
C2(branch)
/
|
|
C1 (master)
谢谢..
【问题讨论】:
标签: git git-branch git-push git-commit
我在master 中有一个提交C1。之后我已经分支并在分支中提交了C2。现在我只想将提交C2 推送到master。(C1 还没有准备好被推送)怎么做..
C2(branch)
/
|
|
C1 (master)
谢谢..
【问题讨论】:
标签: git git-branch git-push git-commit
【讨论】:
首先,您的措辞有点令人困惑:在谈到push 时,总是涉及到一个遥控器。所以你不是git push 从branch 到master 而是到origin/master。
如果我理解正确,这里是如何将一个提交从您的分支 branch 推送到 origin/master
从您上次推送的修订版中查看一个新的本地分支 tmp-for-pushing:
git fetch origin && git checkout -b tmp-for-pushing origin/master
Cherry-pick C2 进入这个分支:
git cherry-pick C2
发布这个单一的提交:
git push origin tmp-for-pushing:master
到目前为止,您已更新遥控器,但我们需要再次清理。
再次结账:
git checkout master
扔掉你的临时分支
git branch -D tmp-for-pushing
将 master 重新定位到更新后的 origin/master
git fetch origin && git rebase origin/master
将 C2 重新设置为更新后的 master(如果 C2 是那里唯一的提交,则 C2 在此之后将等于 master:
git checkout branch && git rebase master
【讨论】: