热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

推送大型github仓库失败,"无法推送到不合格的目的地:主人"

如何解决《推送大型github仓库失败,"无法推送到不合格的目的地:主人"》经验,为你挑选了1个好方法。

我有一个大的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.

所以,远程仓库中还没有主分支,但我正试图推动它并且它失败了.

我该如何解决?或者我如何在遥控器上创建一个空的主分支,以便我可以推送它?



1> hobbs..:

推到refs/heads/master这一次.

git push origin whatever:refs/heads/master

这将明确地创建它作为一个分支,你将来能够正常推动它.

这是有效的,因为没有名为master的远程ref(它还没有被创建),目标ref没有完全限定refs /所以git无法根据它进行计算,而源ref是一个哈希而不是一个名字,所以它也无法根据这个来弄明白.通过推送到refs/heads/master,它可以正常工作,因为第二个条件为真,然后在遥控器上存在master,所以第一个条件为真


@hobbs你能解释一下这个问题是如何/为何起作用的,以及为什么问题首先存在?你的解决方案解决了问题,但我不知道为什么:X
@xapple`git push origin无论如何:refs/heads/master`
@sleepycal确切原因在于错误消息.没有名为`master`的远程引用(它还没有被创建),目标引用不是完全限定的`refs /`所以git无法根据它来解决它,而源ref是一个哈希而不是名称,所以它也无法根据它来弄清楚.通过推送到`refs/heads/master`它可以工作,因为第二个条件为真,然后在遥控器上存在`master`,所以第一个条件为真.
@sleepycal https://git-scm.com/book/zh-cn/v2/Git-Internals-Git-References讨论在您的.git / refs中看到的三种参考类型:头部,标签和遥控器。@hobbs提到了为什么git无法推断远程更新中应该更新或创建的引用。您可以使用以下命令列出当前已知的参考:loc show的git show-ref,包括它知道的任何远程参考,以及git的ls-remote 的远程参考。(太糟糕了,名字不能更好地相互反映。)
推荐阅读
author-avatar
mobiledu2502856411
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有