Je n'ai que le maître de branche et j'obtiens cette erreur chaque fois que j'essaye de "git pull":
error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
! a0f80ea..49177a3 master -> origin/master (unable to update local ref)
et quand je fais "git pull origin master" j'obtiens:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
J'ai cherché mais je ne trouve pas pourquoi
git
command-line-interface
user115561
la source
la source
Réponses:
Mon équipe et moi avons rencontré cette erreur, incapable de mettre à jour la référence locale , lors d'une extraction dans SourceTree.
Nous avons utilisé :
Cela supprime tous les objets de référence en double qui devraient résoudre le problème.
Voici quelques liens où vous pouvez en savoir plus sur les références git et l'élagage :
git astuce de la semaine
documentation de git-prune
références git
la source
git gc --prune=now
git remote prune origin
de stackoverflow.com/questions/2998832/…git remote prune origin
et cela n'a pas fonctionné pour moi. Mais après cela, j'ai essayé celagit gc --prune=now
, et cela a fonctionné! Je ne sais pas si les deux étaient nécessaires dans cet ordre, ou seulement celui-ci.git
qui conduit à un article StackOverflow utile avec une solution laconique.J'ai résolu comme ci-dessous:
git remote prune origin
la source
git gc --prune=now
n'a rien faitavec gitbach line commande, utilisez
git update-ref
pour mettre à jour la référence de votre succursale locale:puis tirez en utilisant
$ git pull
[locked branch name]
est le nom de la branche sur laquelle l'erreur se produit en raison de la non-concordance des ID de validation.la source
Essayez d'utiliser cette commande dans le dossier racine de votre référentiel git:
la source
J'ai découvert le même message d'erreur en essayant d'extraire un dépôt Bitbuck dans ma copie lokal. Il n'y a également qu'un seul Branche Master et la commande
git pull origin master
conduit à ce message d'erreurSolution comme suit
git reflog
trouver le numéro du dernier commitgit reset --hard <numnber>
réinitialiser au dernier commitgit pull origin master
tirer à nouveau sans erreurla source
rm .git/refs/remotes/origin/master
Cela fonctionne pour moi!
la source
Assurez-vous que l'utilisateur qui exécute le
git pull
est le même que celui qui a créé le référentiel. Les autorisations de fichier sont incorrectes.la source
Clonez à nouveau le référentiel et copiez le dossier .git dans votre projet interrompu.
la source
Cela m'est arrivé sur OSX où j'utilise un système de fichiers insensible à la casse. D'une manière ou d'une autre, un autre développeur a poussé une branche avec le même nom mais un cas différent:
My-Branch
vsmy-branch
.J'avais déjà
My-Branch
vérifié et obtenu l'erreur "impossible de mettre à jour la référence locale" lorsque j'ai fait un tirage probablement parce que le système de fichiers penseMy-Branch
==my-branch
.Depuis que nous utilisons Github, je pourrais résoudre le problème en supprimant l'une des branches via l'interface graphique de Github.
la source
Cette erreur avec (impossible de mettre à jour la référence locale) peut également se produire si vous avez récemment changé de mot de passe et qu'il y a des trucs sophistiqués intégrant vos connexions Windows et Linux.
la source
Parlant d'un utilisateur de PC - Redémarrez.
Honnêtement, cela a fonctionné pour moi. J'ai résolu deux problèmes git étranges que je pensais être des corruptions de cette façon.
la source
C'est probablement une situation très niche, mais: j'exécute Windows dans une VM Parallels sur mon MacBook Pro, avec mes dépôts locaux stockés sur le disque de la VM, qui est partagé avec macOS.
Si j'ai un fichier ouvert dans une application Mac à partir d'un dépôt situé sur la machine virtuelle Windows, j'obtiens parfois l'erreur «Impossible de mettre à jour la référence locale». La solution lorsque cela se produit consiste simplement à fermer le fichier ou à quitter l'application Mac.
la source
Que s'est-il passé ici? Les références locales à vos branches distantes ont été modifiées et, par conséquent, lorsque vous exécutez
git pull
, git ne trouve aucune branche distante correspondante et échoue donc.nettoie réellement ces références locales, puis exécutez
git pull
.Suggestion - Veuillez exécuter avec l'
--dry-run
option pour la sécuritéla source
J'ai eu le même problème sur mon serveur Debian car le disque est plein. Aucun fichier temporaire n'a pu être créé car il ne reste plus d'espace sur l'appareil. Après avoir nettoyé certains fichiers, tout s'est bien passé.
la source
Ce travail pour moi
la source
J'ai eu la même erreur, je mettais à jour depuis Eclipse et j'ai eu de nombreuses erreurs. J'ai donc essayé de mettre à jour à partir d'une fenêtre de commande DOS et j'ai eu le même problème.
Ensuite, j'ai essayé la solution "git gc --prune = now" Cela a donné des messages indiquant que les fichiers étaient verrouillés dans le répertoire refs.
Eclipse doit avoir un verrou sur quelque chose dans le répertoire "refs".
La solution que j'ai trouvée était de fermer simplement Eclipse. Ensuite, j'ai mis à jour le référentiel depuis DOS avec une commande "git PULL", et tout a bien fonctionné.
la source
Supprimer le fichier .git / logs / refs / remotes / origin / [Nom de la branche verrouillée]
la source