单程:
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在本地之后,即它不包含本地也没有的提交,那么推送会成功,否则会失败。