web-dev-qa-db-fra.com

Pousser un grand dépôt github échoue avec "impossible de pousser vers une destination non qualifiée: maître"

J'ai un grand dépôt git (créé à partir d'un dépôt SVN) et je veux le pousser vers github. Étant donné qu'il est grand, je ne peux pas simplement essayer de le pousser directement, car il échoue avec une erreur "pack trop grand".

Tout va bien jusqu'à présent, je peux pousser le repo un commit à la fois. Mais quand j'essaye de faire ça, 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 branche principale dans le référentiel distant, mais j'essaie d'y pousser et cela échoue.

Comment puis-je réparer ça? Ou comment puis-je créer une branche maître vide sur la télécommande pour pouvoir y pousser?

58
Maurício Linhares

Appuyez sur refs/heads/master, juste cette fois.

git Push Origin whatever:refs/heads/master

Cela le créera sans ambiguïté en tant que branche, et vous pourrez y pousser normalement à l'avenir.

Cela fonctionne car il n'y a pas de référence distante nommée master (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 sur la base de cela, et la référence source est un hachage plutôt qu'un nom, il ne peut donc pas le comprendre sur la base de cela non plus. En poussant sur refs/heads/master, cela fonctionne parce que la deuxième condition est vraie, puis le maître existe sur la télécommande, donc la première condition est vraie

111
hobbs

Vous pouvez également créer une nouvelle branche avec

git checkout -b branchName

puis pousser votre référentiel git vers cette branche

git Push Origin whatever:branchName
1
M.Ferru

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

Vérifiez également ce problème similaire: Lors de la suppression de la branche git distante "erreur: impossible de pousser vers une destination non qualifiée"

1
Nutan

J'ai eu cette même erreur et j'ai constaté que j'avais mal orthographié le nom de ma succursale. Vous pouvez donc trouver que la double vérification du nom de la succursale pour vous assurer que toutes les majuscules, etc. sont au bon endroit.

0
TBone