单程:
git checkout myBranch
git push origin myBranch:master
其他方式:
git checkout master
git merge myBranch
git push
这两者有什么区别?
单程:
git checkout myBranch
git push origin myBranch:master
其他方式:
git checkout master
git merge myBranch
git push
这两者有什么区别?
这:
git checkout myBranch
git push origin myBranch:master
myBranch
只是尝试对to进行快进(即非强制更新)推送master
。如果master
从 可以到达myBranch
,即master
不包含任何myBranch
不存在的提交,则推送将成功;否则,推送将被拒绝。
前面git checkout myBranch
的内容与 refspec 无关git push
,因为您使用的是 refspec myBranch:master
。你可以在Git Internals - The Refspec了解更多关于refspecs 的信息。
这:
git checkout master
git merge myBranch
git push
实际上合并myBranch
到master
,然后尝试将其推送到远程(使用 Git 存储库的默认配置,远程将是源)。
因为myBranch
实际上是合并到master
的,那么假设远程master
在本地之后,即它不包含本地也没有的提交,那么推送会成功,否则会失败。