Git incapable de résoudre les références en poussant
Je rencontre un problème avec Git. Pour des raisons inconnues, mon maître branche a en quelque sorte été corrompu. J'ai un local de s'engager à ce que j'ai envie de pousser, mais quand je pousse, j'obtiens ceci:
git push origin master
error: unable to resolve reference refs/remotes/origin/master: No such file or directory
error: cannot lock the ref 'refs/remotes/origin/master'.
Everything up-to-date
J'ai vu la question sur d'autres conseils, mais, habituellement, se référant à la tire et ne pousse. Néanmoins, j'ai essayé de leurs solutions, mais en vain:
- Essayé modifiant à mon commit courant et en poussant
- nettoyé mon dépôt git avec
git gc --prune=now
- Essayé
rm .git/refs/removes/origin/master
Aucun n'a résolu mes problèmes. Des pensées ou des idées?
source d'informationauteur cidthecoatrack
Vous devez vous connecter pour publier un commentaire.
(une peine tl;dr de @NeTeInStEiN:
L'option nucléaire est
rm -rf .git/refs/remotes/origin
et c'est ce qu'il a pris ici)edit: j'ai couru à travers une partie de ce problème dans un de mes propres repos, je peux obtenir git pour reproduire le f-e-r panne, sans
rm .git/refs/remotes/origin/master
hack:HEAD
'attaché)git fetch --prune
dans le cloneL'extraction va produire un pend-ref avertissement, et
git for-each-ref
échouera avec un message bien connu:mais qui ne se casse pas la pousser, j'ai essayé avec tous les paramètres de
push.default
ni ne pausegit update-ref -d
.Cependant, googler le message push ne me présente:
Voir les commentaires ci-dessus pour le coup-par-coup, tl;dr est parce qu'ils étaient à distance refs, qui
git fetch
complètement rafraîchi, et parce que les dégâts étaient tels quefor-each-ref
etgit update-ref
ne fonctionne pas à tous, l'option nucléairerm -rf refs/remotes/origin; git fetch
a été garanti pour restaurer la télécommande correctement.Dans d'autres circonstances, s'il n'y avait pas de moyen facile pour la réparation des refs ou par curiosité,
find .git/refs/remotes/origin -type f
pour vérifier les verrous ou à l'aide de reflogs (ces fichiers sont dans.git/logs
) pour récupérer le contenu aurait aidé, mais il n'était pas nécessaire. Je pense que j'ai manqué un pari en ne faisant pas lafind
d'abord,*.lock
fichiers à partir d'unkill -9
ed commande précédente probable ici, mais je m'en doutais un ambiguë ref et f-e-r est ma première étape pour ceux.Remarque: avec Git 2.5 (juillet 2015),
git pour-chaque-ref
va être un peu plus précis quand il échoue sur un "objet manquant".Voir s'engager 501cf47s'engager f551707 (03 Juin 2015), et s'engager 8afc493s'engager c3e23dc (02 Juin 2015) par Michael Haggerty (
mhagger
).(Fusionnés par Junio C Hamano --
gitster
-- dans s'engager 9d71c5f24 Juin 2015)Je suis sans doute un jour de retard et un dollar à court, mais j'ai récemment vécu le même message d'erreur lors de la configuration de mon premier référentiel pour l'école. J'ai regardé les réponses ci-dessus et aucun n'a résolu mon problème. Ce qui n'a résoudre mon problème était le suivant :
sudo git push
et entré le mot de passe admin...