Pousser un repo github volumineux échoue avec «impossible de passer à une destination non qualifiée: master»

J’ai un grand repository git (créé à partir d’un repository SVN) et je veux le pousser vers github. Étant donné sa taille, je ne peux pas simplement essayer de le pousser directement, car il échoue avec une erreur “pack too large”.

Tout va bien jusqu’ici, je peux pousser le repo un commettre à la fois. Mais quand j’essaie de faire cela, ce qui se passe c’est:

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. 

Donc, il n’y a pas encore de twig maître sur le repo distant, mais j’essaie d’y parvenir et cela échoue.

Comment puis-je réparer ça? Ou comment créer une twig principale vide sur la télécommande pour pouvoir y accéder?

Poussez à refs/heads/master , juste cette fois.

git push origin whatever:refs/heads/master

Cela le créera sans ambiguïté en tant que twig, et vous pourrez le faire normalement à l’avenir.

Cela fonctionne car il n’y a pas de référence distante nommée maître (elle n’a pas encore été créée), la référence cible n’est pas entièrement qualifiée avec refs / donc git ne peut pas le comprendre en fonction de cela, et la référence source est un hachage plutôt qu’un nom, il ne peut pas non plus être compris. En appuyant sur refs / heads / master, cela fonctionne parce que la deuxième condition est vraie, et ensuite Master existe sur la télécommande, donc la première condition est vraie

J’ai eu la même erreur et j’ai constaté que j’avais mal écrit le nom de ma twig. Vous pouvez donc constater que la double vérification du nom de la succursale pour s’assurer que toutes les majuscules sont bien placées.

Vous pouvez également créer une nouvelle twig avec

 git checkout -b branchName 

puis poussez votre repository git vers cette twig

 git push origin whatever:branchName 

Cela a fonctionné pour moi: j’ai créé la twig distante sur l’interface utilisateur de github, puis j’ai poussé ma twig locale qui portait le même nom. Essayez-le au cas où d’autres moyens ne fonctionnent pas. Une autre façon serait de créer une nouvelle twig localement et de pousser une twig vide puis de choisir votre commit et de repasser sur votre télécommande.

Vérifiez aussi ce problème similaire: Lors de la suppression de la twig distante de git “erreur: impossible de pousser vers une destination non qualifiée”