Quelque chose ne va pas avec l'un des fichiers de mon référentiel git local. Lorsque j'essaie de changer de branche, cela dit:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Qu'est-ce que cela pourrait signifier?
Réponses:
Cela pourrait signifier qu'un autre programme utilise le fichier, ce qui empêche git de "déplacer" le fichier dans ou hors du répertoire de travail lorsque vous essayez de changer de branche.
J'ai eu cela sur Windows Vista où eclipse est le programme "utilisant" le fichier. Le fichier peut ne pas être réellement ouvert dans eclipse mais peut avoir été ouvert par un processus exécuté par eclipse.
Dans ce cas, essayez de fermer le fichier dans toutes les applications qui pourraient l'avoir utilisé. Si cela ne fonctionne pas, fermez complètement toutes les applications susceptibles d'avoir ouvert le fichier.
la source
GitKraken
vous pourriez obtenir ceci si vous exécutez des commandes comme un rebaseJ'ai eu ce problème et l'ai résolu par la commande:
git gc
La commande ci-dessus supprime les fichiers temporaires et inutiles. (Éboueur.)la source
git pull
lancégit gc
automatiquement, et gc a tenté d'accéder à certains fichiers .pack et .inx. Celles-ci étaient détenues par le processus "windows git", qui possédait lagit pull
commande. L'exécutiongit gc
manuelle et que -git pull
résout vraiment le problème.git gc
j'ai de nouveau la même erreur quandgc
était en courscette solution d' ici a fonctionné pour moi:
la source
Ctrl+C
pour mettre fin à la très longue liste de fichiers non liés; quitté gitbash, mon IDE et l'application GitHub Windows; redémarré gitbash en mode élevé "Exécuter en tant qu'administrateur"; et a courugit gc --aggressive
. Il a fallu un certain temps pour terminer, mais il a réussi sans erreur.J'ai rencontré ce problème en faisant un
git pull
.J'ai essayé
git gc
et cela a résolu mon problème.la source
Dans mon cas, aucun processus ne touche le fichier ou le répertoire. Peut-être que cela se produit si le chemin est très long, à cause d'une restriction du système d'exploitation (Windows). Essayez d'activer l'indicateur de support longpath dans la configuration globale de git comme indiqué ci-dessous:
ou essayez de définir l'indicateur de réponse oui / non s'il n'est pas conflictuel pour vous
Si le chemin est trop long, je n'ai pas trouvé de solution réussie.
la source
GIT_ASK_YESNO
, impossible de trouver des informations sur celui-ci. D'où est ce que ça vient ?core.longpaths
avec supplémentaire: reset --hard prune gc a fonctionné pour moi - mais a dû fermer AndroidStudio pour ne pas gâcher ses outilsJ'ai essayé
git gc
et cela a résolu mon problème.la source
Cela pourrait être utile pour quelqu'un; si tout ce qui précède n'a pas fonctionné pour vous, procédez comme suit:
Fermez votre IDE (le mien était Eclipse, je ne sais pas si cela s'applique à Intellij et à d'autres) ou toute autre application qui pourrait utiliser git.
Ouvrez git à partir de la ligne de commande (dans mon cas, j'avais git bash) et exécutez
git gc
comme mentionné par d'autres.Cela a fait la magie pour moi.
la source
Comme j'utilise gitkraken et l'invite de commande, j'ai rencontré le même problème. Et puis je cours
git gc
commande, cela a résolu mon problème. Je suis donc heureux et souhaite partager certains des points qui pourraient être utiles.Que
git gc
va faire?git gc
supprimer les objets inaccessibles qui peuvent avoir été créés à partir d'appels antérieurs de git add.Quand courir
git gc
?De doc , les utilisateurs sont encouragés à exécuter cette tâche régulièrement dans chaque référentiel pour maintenir une bonne utilisation de l'espace disque et de bonnes performances de fonctionnement.
Comment le rendre auto-configurable?
Certaines commandes git peuvent exécuter automatiquement git gc; voir le drapeau --auto ci-dessous pour plus de détails. Si vous savez ce que vous faites et tout ce que vous voulez, c'est de désactiver définitivement ce comportement sans autre considération, faites simplement
la source
Dans mon cas (Win8.1, TortoiseGit en cours d'exécution), c'était le processus appelé "cache d'état TortoiseSVN" qui bloquait le fichier.
Le tuer m'a permis de lancer "git gc" sans plus de problèmes. Le processus ci-dessus est déclenché par TortoiseGit, il n'est donc pas nécessaire de le redémarrer manuellement.
la source
J'ai eu ce genre de problème sur Windows 7 et il s'est avéré être dû à un
git.exe
processus orphelin .Pour le résoudre, ouvrez le Gestionnaire des tâches et supprimez tous les
git.exe
processus.Étant donné que les
git
commandes sont de courte durée, vous ne devriez normalement jamais en voirgit.exe
dans le Gestionnaire des tâches. Quand ils sont là, cela signifie généralement que quelque chose ne va pas et vous devez tuer ces processus.la source
J'ai eu ce problème sous Windows. J'ai fermé mon IDE (Android Studio) et sélectionné OUI dans git shell. Ça a marché.
la source
Sous Windows 8: j'ai exécuté git gc et il était dit que git gc était déjà en cours d'exécution, j'ai exécuté git gc --force et le garbage collector a fonctionné.
Je pourrais alors changer de branche et fusionner sans aucun problème, essayez git gc --force.
Peut-être que le processus gc ne s'est pas arrêté gracieusement pour une raison ou une autre.
la source
J'ai eu ce problème avec des
.tmp
fichiers dans le/.git/objects/pack
dossier. Je pense que quelque chose a échoué lors d'un push ou pull, j'ai donc supprimé ces fichiers temporaires et réinitialisé le HEAD à mon dernier commit. Je ne sais pas si cela est conseillé, mais cela a fonctionné pour moi. M'a égalementgit count-objects -v
donné une liste des.tmp
fichiers qui n'appartenaient pas au dossier du pack.Ou pour supprimer les messages y / n dans les fenêtres
git open cmd.exe
et exécuter:vu ici: https://twitter.com/petercamfield/status/494805475733807104
la source
git gc
,git count-objects -v
aide à identifier les objets temporaires restants dans lepack
dossier.J'ai pu résoudre ce problème en ouvrant Powershell en tant qu'administrateur et à partir de là
git checkout <branch_name>
la source
J'ai fait face au même problème en faisant «git pull». J'ai essayé la commande manuelle git de maintenance 'git gc' et cela a résolu mon problème.
la source
Après avoir finalement essayé diverses solutions
git clean -f
m'a aidé.EDIT: J'ai rencontré le problème à plusieurs reprises - la fermeture de tous les processus dépendants de git semble aider (comme gitbash, Eclipse IDE, etc.)
la source
Comme indiqué ci-dessus, quelque chose d'autre contient les fichiers. Le fait est que ce programme ne nous semble pas suspect. J'essayais de faire un git pull depuis la console, tout en ayant ouvert GitKraken. La fermeture de GitKraken a résolu le problème.
la source
Commande après exécution
Je vois une erreur
Parce qu'un autre programme utilise ce fichier . Par exemple, lorsque j'exécute une application Web Java dans un modèle de débogage ou que j'exécute une application Web sur le serveur, je ne peux pas supprimer le fichier journal. Désactivez le serveur d'applications (ou désactivez le processus de débogage), réessayez
Je vois que le fichier a été supprimé.
la source
Cela peut être une fenêtre gitk distincte en cours d'exécution pour voir un historique de git.
Fermez simplement cette fenêtre pour résoudre ce problème.
la source
J'ai rencontré ce problème en exécutant git Bash et Eclipse EGit en même temps. Solution: fermez Eclipse.
git gc
Cela ne ferait pas de mal non plus de courir comme l'a mentionné @khilo.la source
Après qu'aucune des réponses ci-dessus ne semble fonctionner, la course à pied a
git fetch -p
fait le travail pour moi.https://git-scm.com/docs/git-fetch
la source
J'ai rencontré ce problème dans Windows, vous voudrez peut-être exécuter le git bash en tant qu'administrateur, puis exécuter les commandes de désir, qui ont résolu le problème pour moi.
la source
Si vous développez une application Web, une raison courante consiste à oublier d'arrêter le serveur. Par exemple, cela peut être un simple processus Node.js, ou sur Windows, votre processus IIS s'exécute plus discrètement en tant que processus d'arrière-plan.
la source
J'ai essayé chaque astuce sur cette page et rien n'y fait. Je faisais un
git fetch
et ungit reset --hard origin/development
m'a donné l'erreur de malentendu. Je n'ai pas pu réinitialiser le dernier commit.Ce qui a aidé était de vérifier une autre branche, puis de vérifier la branche précédente. Très étrange mais cela a résolu le problème.
la source
Si la fermeture de votre IDE et l'exécution de diverses commandes git répertoriées ici ne vous aideront pas, essayez de tuer manuellement tous les processus Java en cours d'exécution. Il me restait probablement un processus Java d'éclipse qui gardait en quelque sorte un fichier de configuration ouvert.
la source
Si vous utilisez Docker et exécutez Windows 10, vous souhaiterez peut-être arrêter le ou les conteneurs sur lesquels le fichier s'exécute. Pour afficher les statuts de vos conteneurs, exécutez
docker ps -a
Pour les arrêter, lancez simplement
docker stop <container name or container id>
Cela a fonctionné pour moi car j'exécute mes fichiers locaux en utilisant un fichier .sh
la source
A travaillé pour moi, essayé sur les fenêtres:
Arrêtez votre serveur cours d'exécution à partir de l'IDE ou fermez votre IDE
Intellij / Ecllipse ou autre, cela fonctionnera.
la source
Sous Windows, vous avez vu cette erreur sur un
git clone
dépôt (assez volumineux). Fermé SmartGit et suspendu mon logiciel de sauvegarde (CrashPlan), et après cela a fonctionné. Je ne sais pas lequel des 2 a fait l'affaire, mais si vous exécutez l'un ou l'autre, cela pourrait le faire pour vous aussi.la source
J'ai eu le même problème lors d'un git pull et comme indiqué ci-dessus, c'était à cause d'un programme qui contenait ces fichiers et ne permettait pas un git pull. La fermeture du programme a aidé. Habituellement, l'IDE (comme Eclipse) d'où les fichiers sont archivés le tiendra en arrière-plan. Fermer le même et relancer git pull a résolu le problème pour moi.
la source
J'ai eu cette même erreur et la fermeture de l'application qui avait ouvert le fichier l'a résolu. J'ai pu revenir en arrière et appuyer sur "Y"
la source