Dissocier le fichier a échoué. Devrais-je réessayer?

Quelque chose ne va pas avec l’un des fichiers de mon repository Git local. Lorsque j’essaie de changer de twig, il dit:

Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n) 

Qu’est-ce que cela pourrait signifier?

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 twig.

Je l’ai eu 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 les applications susceptibles de l’avoir utilisé. Si cela ne fonctionne pas, quittez complètement toutes les applications qui ont pu ouvrir le fichier.

J’ai eu ce problème et résolu par la commande: git gc La commande ci-dessus supprime les fichiers temporaires et inutiles. (Éboueur.)

cette solution a fonctionné pour moi:

Ceci est une réponse spécifique à Windows, donc je suis conscient que ce n’est pas pertinent pour vous … Je l’inclus simplement pour le bénéfice des futurs chercheurs.

Dans mon cas, c’était parce que je courais Git depuis une ligne de commande non élevée. “Exécuter en tant qu’administrateur” l’a corrigé pour moi.

J’ai rencontré ce problème tout en faisant un git pull .

J’ai essayé git gc et cela a résolu mon problème.

Dans mon cas, aucun processus ne concerne le fichier ou le répertoire. Peut-être que cela se produit si le chemin est très long, car une ressortingction du système d’exploitation (Windows). Essayez d’activer l’indicateur de support longpath dans la configuration globale de git, comme indiqué ci-dessous:

 git config --global core.longpaths true 

ou essayez de définir l’indicateur de réponse oui / non s’il n’est pas conflictuel pour vous

 set GIT_ASK_YESNO=false 

Si le chemin est trop long, je n’ai pas trouvé de solution réussie.

Dans mon cas (Win8.1, TortoiseGit en cours d’exécution), c’était le processus appelé “TortoiseSVN status cache” qui verrouillait 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.

Cela pourrait être utile pour quelqu’un; Si tout ce qui précède n’a pas fonctionné pour vous, procédez comme suit:

  1. Fermez votre IDE (le mien était Eclipse, je ne suis pas sûr qu’il s’applique à Intellij et à d’autres) ou toute autre application qui pourrait utiliser git.

  2. Ouvrez git depuis la ligne de commande (dans mon cas, j’ai eu git bash) et lancez git gc comme mentionné par d’autres.

Cela a fait la magie pour moi.

Sur Windows 8: j’ai lancé git gc et il a été dit que git gc était déjà lancé, j’ai lancé git gc –force et le ramasse-miettes a été lancé.

Je pourrais alors changer de twig et fusionner sans aucun problème, essayez git gc –force.

Peut-être le processus de gc ne s’est-il pas arrêté gracieusement pour une raison ou une autre.

J’ai ce problème sous Windows. J’ai fermé mon IDE (Android Studio) et sélectionné YES dans git shell. Ça a marché.

J’ai fait face au même problème tout en faisant du «git pull». J’ai essayé la commande manuelle git ‘git gc’ et cela a résolu mon problème.

J’ai eu ce genre de problème sur Windows 7 et il s’est avéré être dû à un processus orphelin de git.exe .

Pour le résoudre, ouvrez le Gestionnaire des tâches et tuez tous les processus git.exe .

Puisque les commandes git sont de courte durée, vous ne devriez normalement jamais voir git.exe dans le Gestionnaire des tâches. Quand ils sont là, cela signifie généralement que quelque chose ne va pas et que vous devez tuer ces processus.

J’ai eu ce problème avec les fichiers .tmp dans le dossier /.git/objects/pack . Je pense que quelque chose a échoué lors d’un push ou d’un pull, j’ai donc supprimé ces fichiers temporaires et réinitialisé HEAD à mon dernier commit. Je ne sais pas si cela est conseillé mais cela a fonctionné pour moi. Aussi git count-objects -v m’a donné une liste des fichiers .tmp qui n’appartiennent pas au dossier du pack.

Ou pour supprimer les messages Y / N dans Windows git open cmd.exe et exécutez:

 SETX GIT_ASK_YESNO false 

vu ici: https://twitter.com/petercamfield/status/494805475733807104

Après avoir essayé diverses solutions, git clean -f m’a finalement aidé.

EDIT: Je frappe le problème encore quelques fois – la fermeture de tous les processus dépendant de git semble aider (comme gitbash, Eclipse IDE, etc.)

Cela peut être une fenêtre distincte de gitk en cours d’exécution pour voir une histoire de git.

Fermez cette fenêtre pour résoudre ce problème.

J’ai rencontré ce problème en exécutant git Bash et Eclipse EGit en même temps. Solution: fermez Eclipse. Aussi, ne pas nuire à l’exécution de git gc comme @khilo mentionné.

Après qu’aucune des réponses ci-dessus ne semblait fonctionner, lancer git fetch -p fait l’affaire pour moi.

https://git-scm.com/docs/git-fetch

Comme indiqué ci-dessus, quelque chose retient les fichiers. Ce programme ne semble pas suspect pour nous. J’essayais de faire une git pull à partir de la console, tout en ayant GitKraken ouvert. La fermeture de GitKraken a résolu le problème.

Si vous développez une application Web, la raison commune est d’oublier de fermer le serveur. Par exemple, cela peut être un processus Node.js simple ou, sur Windows, votre processus IIS est plus discret en tant que processus d’arrière-plan.

Comme j’utilise gitkraken et invite de commande, j’ai rencontré le même problème. Et puis je lance la commande git gc qui a résolu mon problème. Je suis donc heureux et souhaite partager certains des points qui pourraient être utiles.

Qu’est-ce que git gc va faire?

git gc supprime les objects inaccessibles qui peuvent avoir été créés à partir d’invocations antérieures de git add.

Quand lancer git gc ?

À partir 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 d’exploitation.

Comment le rendre auto-configurable?

Certaines commandes git peuvent automatiquement lancer git gc; voir l’indicateur –auto ci-dessous pour plus de détails. Si vous savez ce que vous faites et que tout ce que vous voulez, c’est désactiver ce comportement de manière permanente sans autre considération, faites-le simplement.

 git config --global gc.auto 0 

J’ai essayé git gc et cela a résolu mon problème.

J’ai rencontré ce problème dans Windows, vous pourriez vouloir lancer git bash en tant qu’administrateur, puis exécuter les commandes souhaitées, qui ont résolu le problème pour moi.

Sous Windows, a vu cette erreur sur un git clone un git clone (assez grand). J’ai fermé SmartGit et mis en pause mon logiciel de sauvegarde (CrashPlan), après quoi cela a fonctionné. Vous ne savez pas lequel des 2 a fait le tour, mais si vous courez non plus, cela pourrait le faire pour vous aussi.

J’ai eu le même problème en faisant un git pull et comme indiqué ci-dessus, c’était à cause d’un programme qui contenait ces fichiers et n’autorisait pas une extraction git. La fermeture du programme a aidé. En règle générale, l’EDI (comme Eclipse) à partir duquel les fichiers sont archivés le conservera en arrière-plan. Fermer le même et re-lancer git pull a résolu le problème pour moi.

Après la commande d’exécution

 git rm -rf foo.bar 

Je vois l’erreur

 Unlink of file 'foo.bar' failed. Should I try again? (y/n) 

Parce qu’un autre programme utilise ce fichier . Par exemple, lorsque je lance une application Web Java dans un modèle de débogage ou que je lance une application Web sur un serveur, je ne peux pas supprimer le fichier journal. Désactivez le serveur d’application (ou désactivez le processus de débogage), réessayez

 git rm -rf foo.bar 

Je vois que le fichier a été supprimé.

J’ai eu la même erreur et fermer l’application qui avait ouvert le fichier résolu. J’ai pu revenir en arrière et appuyer sur “Y”

J’ai essayé tous les conseils sur cette page et rien n’a aidé. Je faisais une git fetch et une git reset --hard origin/development hard m’a donné l’erreur non-détectée. Je n’ai pas pu rétablir le dernier commit.

Ce qui a aidé était de vérifier une autre twig et ensuite vérifier la twig précédente. Très étrange mais cela a résolu le problème.