Après le clonage à partir du référentiel git distant (à bettercodes), j'ai apporté quelques modifications, je me suis engagé et j'ai essayé de pousser:
git push origin master
Erreurs avec:
erreur: impossible de verrouiller les informations / références existantes
fatales: échec de git-http-push
Ce cas concerne le référentiel déjà existant.
Ce que j'ai fait auparavant, c'était:
git config –global http.sslVerify false
git init
git remote add [url]
git clone
- changer les données
git commit
Chez 'bettercodes', je n'ai pas accès à git log.
J'utilise Windows. L'erreur détaillée était:
C:\MyWorkStuff\Projects\Ruby\MyProject\>git push origin master
Unable to create branch path https://user:[email protected]/myproject/info/
error: cannot lock existing info/refs
fatal: git-http-push failed
J'ai cloné avant, puis changé le code et commis.
git fetch
avantgit pull
.Réponses:
Pour moi, cela a fonctionné:
git remote prune origin
Étant donné que cette réponse semble aider beaucoup de gens, j'ai creusé un peu dans ce qui se passe réellement ici. Cela supprimera les références aux branches distantes du dossier
.git/refs/remotes/origin
. Cela n'affectera donc pas vos succursales locales et cela ne changera rien à distance, mais cela mettra à jour les références locales que vous avez aux succursales distantes. Il semble que dans certains cas, ces références peuvent contenir des données que Git ne peut pas gérer correctement.la source
git
suggère de faire, mais j'étais réticent à le faire car la commande sonne comme si elle faisait quelque chose à la télécommande.git gc --prune=now
Vous voulez essayer de faire:
Voir https://www.kernel.org/pub/software/scm/git/docs/git-gc.html
la source
git pull
a été bloqué avec le message d'erreur similaire.git
commande qui traite de la télécommande.git remote prune origin
résolu le problème une fois pour toutes.Cela m'est arrivé lorsque ma télécommande git (bitbucket.org) a changé son adresse IP. La solution rapide consistait à supprimer et à rajouter la télécommande, puis tout fonctionnait comme prévu. Si vous ne savez pas comment supprimer et rajouter une télécommande dans git, voici les étapes:
Copiez l'URL git SSH de votre télécommande existante. Vous pouvez l'imprimer sur le terminal à l'aide de cette commande:
git remote -v
qui imprimera quelque chose comme ceci:
Retirez la télécommande de votre dépôt git local:
git remote rm origin
Ajoutez la télécommande à votre référentiel local:
git remote add origin [email protected]:account-name/repo-name.git
la source
git branch -u origin/master
L'exécution de la commande l'a
git update-ref -d refs/heads/origin/branch
corrigé.la source
git update-ref -d refs/remotes/origin/my_branch
J'ai corrigé cela en procédant comme suit
Cela en supposant que vos branches locales et distantes sont alignées et que vous obtenez simplement l'erreur refs comme non fatale.
la source
J'ai eu ce problème parce que j'étais sur une branche qui avait un nom similaire à une branche en amont. c'est-à-dire que la branche en amont a été appelée
example-branch
et ma branche locale a été appeléeexample-branch/backend
. La solution consistait à changer le nom de ma succursale locale comme suit:la source
Ce qui a fonctionné pour moi, c'est:
.git/logs/refs/remotes/origin/branch
.git/refs/remotes/origin/branch
git gc --prune=now
la source
Ceci est probablement résolu maintenant. Mais voici ce qui a fonctionné pour moi.
Emplacement:
Si le référentiel verrouillé se trouve côté serveur:
Si le référentiel verrouillé est local uniquement:
Exécutez cette commande:
Corrigez les autorisations sur votre référentiel (distant ou / et local) si vous le devez. J'ai eu dans mon cas
chmod
à777
etchown
àapache:apache
Essayez de pousser à nouveau à partir du référentiel local:
la source
Voilà comment cela fonctionne pour moi.
Alternative encore plus rapide:
cat /dev/null > /var/lock/apache2/DAVlock
la source
#> rm DAVLock; touch DAVLock; chown www-data.www-data DAVLock; chmod 755 DAVLock; service apache2 restart
Cela ressemble à un problème d'autorisations - est-il possible que deux fenêtres soient ouvertes, exécutées avec des droits distincts? Vérifiez peut-être la propriété du dossier .git.
Vérifiez peut-être s'il y a un verrou de fichier en cours ouvert, utilisez peut-être lsof pour vérifier, ou l'équivalent pour votre système d'exploitation.
la source
Dans mon cas, une branche a été déplacée vers un sous-répertoire et le répertoire a été appelé comme branche. Git était confus par cela. Lorsque j'ai supprimé la branche locale (dans SourceTree avec un clic droit supprimer), tout a fonctionné comme d'habitude.
la source
Dans mon cas, après avoir reçu ce message, j'ai fait la commande de paiement et j'ai reçu ce message:
Après avoir exécuté cette commande, j'étais revenu à la normale.
la source
Mise à jour:
Vous devrez peut-être modifier votre fichier ~ / .netrc:
https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553
Réponse originale:
Pourquoi avez-vous désactivé SSL? Je pense que cela pourrait être dû au fait que vous ne pouvez pas pousser via https. Je le reculerais et j'essaierais de pousser encore:
la source
Vérifiez que vous (processus git en fait) avez accès au fichier
.git/info/refs
et que ce fichier n'est pas verrouillé par un autre processus.la source
J'ai eu ce problème lorsque j'essayais de créer une nouvelle branche de fonctionnalité contenant le nom de l'ancienne branche, par exemple origin - branch1 et je voulais créer une branche1. Ce n'était pas possible, mais la fonction branch1 / était déjà.
la source
Dans mon cas, j'ai dû supprimer manuellement les anciennes balises qui avaient été supprimées à distance.
la source
Dans mon cas, c'était lié au nom de la branche que j'avais déjà créé.
Pour résoudre le problème, j'ai créé une branche avec le nom qui ne devrait certainement pas exister, comme:
Ensuite, j'ai effacé toutes mes autres branches (non actives) car elles n'étaient que des ordures inutiles.
puis renommé ma branche actuelle avec le nom que je voulais, comme:
la source
Dans le cas de bettercodes.org, la solution est plus poétique - le seul problème peut être dans les droits attribués aux membres du projet. Les membres simples n'ont pas de droits d'écriture! Veuillez vous assurer que vous disposez des droits de modérateur ou d'administrateur. Cela doit être défini sur bettercodes.org dans les paramètres du projet par un administrateur, bien sûr.
la source
J'ai vu cette erreur lors de la tentative d'exécution
git filter-branch
pour détacher de nombreux sous-répertoires dans un nouveau référentiel séparé (comme dans cette réponse ).J'ai essayé toutes les solutions ci-dessus et aucune d'entre elles n'a fonctionné. Finalement, j'ai décidé que je n'avais pas vraiment besoin de conserver mes balises dans la nouvelle branche et j'ai simplement exécuté:
la source
Voici ce que j'ai fait pour me débarrasser de tous les problèmes de référence de verrouillage:
C'est probablement ce que vous n'avez qu'à faire aussi.
la source