我有一个大的git repo(从SVN repo创建),我想将它推送到github。鉴于它很大,我不能直接尝试直接推送它,因为它失败的包装太大"错误。
到目前为止一切顺利,我可以一次推送回购。但是当我尝试这样做时会发生什么:
git push origin 86c310d8a680d6d0e052fa7db89adb25348f3e54:master
error: unable to push to unqualified destination: master
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
所以,远程仓库还没有主分支,但是我试图推动它并且它失败了。
我该如何解决这个问题?或者我如何在遥控器上创建一个空主分支,以便我可以推送它?
答案 0 :(得分:104)
推送到refs/heads/master
,这一次。
git push origin whatever:refs/heads/master
这将明确地创建它作为分支,并且您将来能够正常推进它。
这是有效的,因为没有名为master的远程ref(它还没有创建),目标ref没有完全限定refs /所以git无法根据它来解决它,并且源ref是一个哈希而不是一个名称,所以它也无法根据它来弄清楚。通过推送到refs / heads / master它可以正常工作,因为第二个条件为真,然后在遥控器上存在master,所以第一个条件为真
答案 1 :(得分:1)
您还可以使用
创建新分支git checkout -b branchName
然后将您的git存储库推送到该分支
git push origin whatever:branchName
答案 2 :(得分:1)
这对我有用:我在github UI上创建了远程分支,然后推送了与它同名的本地分支。尝试以防其他方式不起作用。其他方式是在本地创建一个新分支并推送一个空分支,然后樱桃选择你的提交并再次推送到你的遥控器。
检查此类似问题: When deleting remote git branch "error: unable to push to unqualified destination"
答案 3 :(得分:0)
我有同样的错误,发现我拼错了我的分支名称。所以你可以找到双重检查分支名称,以确保任何大写字母等在正确的位置。