[英]what is the difference between git push origin HEAD : remote_branch and git push origin local_branch:remote_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~4
或HEAD
(参见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.