单程:
git checkout myBranch
git push origin myBranch:master
Run Code Online (Sandbox Code Playgroud)
其他方式:
git checkout master
git merge myBranch
git push
Run Code Online (Sandbox Code Playgroud)
这两者有什么区别?
小智 11
这个:
git checkout myBranch
git push origin myBranch:master
Run Code Online (Sandbox Code Playgroud)
只是试图做一个快进(即非强制更新)的推myBranch
到master
.如果master
可以从myBranch
,即master
不包含任何myBranch
不具有的提交,则推送将成功; 否则,推送将被拒绝.
由于您使用的是refspec,因此上述git checkout myBranch
内容与之无关.您可以在Git Internals - The Refspec了解更多有关refspecs的信息.git push
myBranch:master
这个:
git checkout master
git merge myBranch
git push
Run Code Online (Sandbox Code Playgroud)
实际上合并myBranch
进入master
,然后尝试将其推送到远程(使用Git仓库的默认配置,远程将是原点).
因为myBranch
实际上是合并的master
,所以假设远程master
位于本地的后面,即它不包含本地的也没有的提交,那么推送将成功,否则它将失败.