尝试前一种方法时,我得到了error: src refspec branch does not match any.
,而尝试后者的方法却成功了。
如果值得注意,分支名称为1.3
。
这两者之间有什么区别?为什么第二个成功后第一个失败?
答案 0 :(得分:1)
当您说HEAD:branch
时,您不需要,您需要在本地输入具有与远程分支名称相同的本地分支...当您键入{{1} },您要求它将当前已签出的所有内容作为远程分支放置,而不管它在本地上是什么调用(或在分离的HEAD 上运行)。
答案 1 :(得分:1)
根据您看到的错误,您的本地存储库似乎没有名为branch
的分支,但是远程存储库必须已经有一个分支,例如,如果某个协作者已经推送到branch
有问题的git push
的特定参数称为refspec,使用冒号分隔符,实际上可以在远程端重命名分支或对象。因此,refspec HEAD:branch
意味着如果HEAD
symbolic reference引用分支(或HEAD
的提交,则从当前分支的最近提交开始推动分支。指的是detached),而是指远程端的参考文件branch
。
为完整起见,如果远程上尚不存在branch
,则必须调用
git push remote HEAD:refs/heads/branch
<refspec>
...指定要使用哪个源对象更新的目标引用。的
<refspec>
参数的格式是可选的加+
,后跟 源对象<src>
,后跟冒号:
,后跟 目标参考<dst>
。通常是您要推送的分支的名称,但是 它可以是任意的“ SHA-1表达式”,例如
master~4
或HEAD
(请参阅gitrevisions)。告诉远端的哪个ref以此更新 推。此处不能使用任意表达式,实际引用必须为 命名。如果没有任何
git push [<repository>]
参数的<refspec>
是 设置为使用<src>
更新目标的一些参考remote.<repository>.push
个配置变量,:<dst>
部分可以是 省略-这样的推送将更新<src>
通常会更新的引用 在命令行上没有任何<refspec>
。否则,将缺少:<dst>
表示更新与<src>
相同的引用。