繁体   English   中英

“ git push remote branch”和“ git push remote HEAD:branch”之间有什么区别?

[英]What is the difference between “git push remote branch” and “git push remote HEAD:branch”?

尝试前者时,出现error: src refspec branch does not match any. ,而尝试后者则成功。

万一值得注意,分支名称为1.3

两者之间有什么区别?为什么第二个成功后第一个失败?

这时候,你说HEAD:branch不需要有一个本地分支在本地的远程分支的同名...当你键入git push some-remote HEAD:some-branch你问它把无论您在本地作为本地分支(或在分离的HEAD上运行 )调用了什么,您目前作为远程分支签出的任何内容。

根据您看到的错误,您的本地存储库似乎没有一个名为branch ,但是远程存储库必须已经具有一个branch ,例如,如果某个协作者已经推送到branch

有问题的git push的特定参数称为refspec ,并且使用冒号分隔符,实际上可以在远程端重命名分支或对象。 因此, HEAD:branch的refspec意味着如果HEAD 符号引用引用分支(或者HEAD如果分离则 HEAD引用的提交), HEAD当前分支的最新提交开始推送分支,但指向远程branch的ref branch 。侧。

为了完整起见,如果远程上尚不存在branch ,则必须调用

git push remote HEAD:refs/heads/branch

<refspec> ...

指定要使用哪个源对象更新的目标引用。 <refspec>参数的格式是可选的plus + ,后跟源对象<src> ,后跟冒号: ,然后是目标ref <dst>

经常是你想推分支的名称,但它可以是任何任意的“SHA-1的表达”,如master~4HEAD (参见gitrevisions )。

该告诉告诉远程方的哪个ref随此推送而更新。 此处不能使用任意表达式,必须命名实际引用。 如果git push [<repository>]不带任何<refspec>参数的git push [<repository>]设置为使用带有remote.<repository>.push配置变量的<src>更新目标处的某些ref,则可以省略:<dst>部分-这样push将更新<src>通常不会在命令行上添加任何<refspec>的引用。 否则,缺少:<dst>意味着要更新与<src>相同的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM