说我做了几次提交,并希望能够选择哪些推送到远程存储库。我该怎么做(在ascii中:C1-> C2-> C3-> C4,我想推C2和C4)。是否会重新订购rebase,重置,推送然后重置工作? (C1-> C2-> C3-> C4 => C2-> C4-> C1-> C3 =>重置C4 => push =>重置C3)。有更好的方式吗?
答案 0 :(得分:64)
您在寻找什么:
git push origin commit-id:master
信用证转到:http://blog.dennisrobinson.name/push-only-one-commit-with-git/
解释性说明:
git rebase -i
),所以它们是
按照你想要推动它们的顺序。commit-id
不一定是sha1。在推动之前推动一切
最后N次提交,使用“HEAD~N”代替commit-id
。如果要推送到远程存储库中不存在的分支,请在远程分支前添加refs/heads/
,例如:
git push origin HEAD~1:refs/heads/completely-new-branch
(如果没有,git会用this hopeless error message惩罚你。)
答案 1 :(得分:22)
如果您在私人分支机构上提交了您的提交,您可以从私人分支机构挑选提交并将其应用于官方分支机构。此时,您现在可以将所有提交推送到官方分支(这是您之前选择的子集)。
答案 2 :(得分:7)
$ git push <remote name> <commit hash>:<remote branch name>
# Example:
$ git push origin 2dc2b7e393e6b712ef103eaac81050b9693395a4:master
答案 3 :(得分:3)