Lorsque je fais «git commit», j'obtiens ce qui suit:
fatal: Unable to create 'project_path/.git/index.lock': File exists.
Cependant, lorsque je le fais, ls project_path/.git/index.lock
cela signifie que le fichier n'existe pas. Avez-vous des réflexions sur ce que je dois faire? J'ai également remarqué que project_path / .git appartient à root, je ne sais pas si cela a quelque chose à voir avec le problème que je rencontre.
la version git est 1.7.5.4
edit: Il semble que le problème était probablement un autre processus que j'avais en cours d'exécution, qui écrivait (à mon insu) dans le répertoire du projet. J'ai redémarré ma machine, puis je n'ai eu aucun problème à m'engager.
Réponses:
Cela peut être une vieille réponse, mais j'espère que cela sera plus utile pour les prochains qui ont besoin de cette solution.
Sur linux / unix / gitbash / cygwin, essayez
rm -f .git/index.lock
Sur l'invite de commande Windows, essayez:
del .git\index.lock
la source
fatal: Unable to create 'project_path/.git/index.lock': File exists.
, il dit "Le fichier existe", et la supprimer serait une solution simple. Pourquoi suggérerais-je de supprimer un fichier s'il ne figure même pas dans la question d'origine?Pour les fenêtres:
la source
Sur une plate-forme Windows exécutant Visual Studio 2015 RC (v4.6.00057) en combinaison avec SourceTree (v1.6.14.0) donnera également cette erreur.
Solution: en supposant que vous souhaitez utiliser l'arborescence source comme gestionnaire de code source, désactivez simplement le fournisseur de contrôle de source dans Visual Studio comme ceci:
la source
la source
essayer
si aucun autre processus git n'est en cours d'exécution, supprimez simplement le fichier index.lock du projet respectif.
la source
Je viens d'avoir ce problème ... Gitbox était en faute. Alors peut-être que vous aviez une interface graphique en cours d'exécution qui posait des problèmes.
la source
Cela se produit lorsque vous annulez l'extraction de l'origine au milieu.
vous pouvez donc supprimer manuellement le fichier index.lock de votre répertoire .git.
cd dans votre répertoire de projet et exécutez cette commande.
la source
(Si le fichier est créé, simplement à partir du CD à cet emplacement, le problème est votre éditeur. Fermez votre éditeur. N'utilisez plus cet éditeur pour cette tâche. Ouvrez un autre type d'éditeur - Windows Power Shell ou simplement cmd. Maintenant vous pouvez utiliser les commandes git pour continuer)
la source
Probablement (cela m'est arrivé), la commande ls dit qu'elle n'existe pas car l'utilisateur actuel n'a pas les autorisations pour accéder à ce répertoire ou fichier.
Retirez le verrou et assurez-vous que vous exécutez git avec le bon utilisateur afin d'éviter les problèmes d'autorisation.
Si vous êtes dans une boîte GNU / Linux avec la commande sudo :
la source
ls project_path/.git/index.lock
.del .git\index.lock
travaillé pour moi.J'étais confronté à ce problème lors du paiement d'une nouvelle branche de la branche principale.
Le paiement s'est facilement produit après la suppression du
index.lock
fichier.la source
Parfois, Git crée un fichier de verrouillage associé à votre dépôt lorsque vous effectuez des modifications ou très probablement lorsque vous utilisez des sous-modules. Le message d'erreur vous montrera le chemin du fichier de verrouillage. Corrigé: Accédez simplement manuellement au chemin dans le terminal et supprimez le fichier de verrouillage par $ rm index.lock
Ça devrait aider.
la source
J'ai eu ce problème avec SourceTree lors du changement de branche en double-cliquant dessus. Le problème n'est pas très courant et Atlassian le sait mais ils ont décidé de ne pas le résoudre.
Heureusement, il existe une solution. Au lieu de double-cliquer sur la branche que vous souhaitez changer, faites un clic droit et choisissez "Checkout [nom de la branche]". Cela devrait réussir maintenant.
la source
J'ai rencontré le même scénario. Je n'ai même pas fait de changements dans mon code local. Je viens de modifier un fichier et de le rétablir. J'ai simplement supprimé le fichier ci-dessous dans le dossier caché .git. Ça a marché!
la source
À moins que vous ne souhaitiez réellement que root possède votre référentiel, cela semble que vous avez accidentellement exécuté une commande Git en tant que root (peut-être même le clone / init initial). Si vous vouliez le faire, vous devrez vivre avec l'exécution de toutes les commandes Git dans le référentiel en tant que root. Si ce n'est pas le cas, courez
sudo chown your-user[:your-group] -R .git
pour en prendre possession, puis voyez si les choses fonctionnent.la source
.git
et je les ai corrigés avec:find .git -type f -exec chmod 644 {} \;
etfind .git -type d -exec chmod 755 {} \;
j'avais également foiré les modes lors du déplacement de mon projet git d'un ordinateur à l'autresudo chmod g+w .git -R
Plusieurs clients git travaillant sur le même référentiel local se disputent ce verrou. Chaque client doit attendre que le verrou soit libéré par l'autre partie pour être un bon citoyen. Pour nous, SourceTree ou MSVS semblent effectuer une maintenance en arrière-plan pendant que nous exécutions de gros scripts de validation.
Peut-être que 'git' lui-même devrait supporter un argument '--retriesWhenLocked 5' pour supporter les tentatives. ou même par défaut à cela lorsqu'il est exécuté manuellement.
Voici un wrapper PowerShell autour de git nommé "gitr" qui réessaye jusqu'à ce que index.lock disparaisse, en utilisant 5 essais par défaut, 3 secondes entre chacun. Il ne supprime jamais le fichier index.lock, en supposant que l'utilisateur doit intervenir. Il a été extrait d'un script de validation plus grand. Il n'a que peu de tests avec des arguments simples.
gitr.ps1
la source
J'ai également cette question dans Windows 10.
quand j'essaie del
./.git/index.lock
, ça m'a ditcannot remove 'index.lock': Device or resource busy
J'ai finalement compris la raison:
l'ordinateur a deux processus pour utiliser git:
donc j'utilise cmder.exe pour
git commit
qu'il se produise des erreurs.de sorte que la solution consiste à utiliser
git bash
ou mettre fin àgit bash
puis utiliser cmder.exela source
J'ai eu exactement la même erreur, mais le problème n'était pas le fichier de verrouillage. Au lieu de cela, le problème était que j'avais copié le contenu d'un autre dépôt git dans ce dépôt, y compris le dossier invisible .git. Ainsi, SourceTree était confus quant au repo dans lequel je voulais mettre en scène les fichiers (il y avait un décalage entre le repo que SourceTree pensait que j'étais, et celui dans lequel le contenu de mon dir .git incorporé disait que je devrais être).
la source
J'ai eu ce problème avec TortoiseGit avec Cygwin sous Windows. Je n'ai pas pu supprimer remove ./.git/index.lock même avec des privilèges administratifs, j'ai essayé à la fois Cygwin et l'invite de commande, il a déclaré que le fichier était utilisé par un autre processus.
J'ai constaté que j'avais 2 instances de TortoiseProc.exe en cours d'exécution. J'ai tué l'un d'eux et fermé toutes mes fenêtres de l'explorateur Windows, puis j'ai pu supprimer le fichier. Je ne sais pas si tuer une instance de TortoiseProc.exe était la solution ou fermer les fenêtres de l'explorateur Windows.
la source
La solution pour moi était de supprimer le fichier .index et de permettre à Git d'en reconstruire un autre.
la source
Je n'avais pas de fichier inex.lock à supprimer, mais ce qui a fonctionné pour moi a été de supprimer la vérification en lecture seule de la fenêtre Attributs de la boîte de dialogue Propriétés du dossier.
la source
J'ai créé un fichier index.lock vide, je l'ai supprimé à l'aide de la commande windows
la source
À partir git 2.8.4 (Juin 2016) , cela ne devrait pas se produire plus.
Voir le numéro 755 qui devrait également résoudre le problème ( commit 2db0641 ):
la source
Dans mon application sourceTree, je ne suis pas en mesure de valider ou de basculer vers un autre commit / brach. Ce temps montre une erreur comme
fatal: impossible de créer bla bla bla ..
Je résous simplement cela par le dossier goto .git (dans le projet Explorer Dir). Et supprimez l'index ----- [type de fichier: fichier LOCK]. Maintenant, je récupère tous les accès dans sourceTree ..
s'il vous plaît assurez-vous que le fichier de verrouillage d'index .. suppose que vous n'obtenez pas le type de fichier, modifiez les paramètres de la vue du fichier dans l'ordinateur. Remarque: le dossier .git est normalement un type de dossier caché.
la source
Qu'est-ce que cela m'a fait:
git rebase --abort
et redémarrez le rebase.Comme Andrew l'a mentionné, j'utilisais également PHPStorm lorsque cela s'est produit. Je n'ai pas eu à le fermer cependant.
la source
Vous devez d'abord naviguer vers le dossier spécifique de votre projet .. Comme si le nom de votre projet est Firstproject puis allez d'abord dans le répertoire du projet .. puis tapez cd .git puis après avoir accédé au dossier git, tapez del index.lock Après la suppression du fichier index.lock..Vous pourrez valider et pousser comme avant
la source
Dans mon cas, c'était des fenêtres, pas complètement fermées.
Windows est en veille prolongée, a refusé de monter
Il y a de fortes chances que Windows soit vraiment en veille prolongée. Windows le fait automatiquement lorsque vous lui dites de s'arrêter normalement. L'avantage est que vous obtenez un temps de démarrage apparent plus rapide.
Pour arrêter Windows sans hybernation, émettez ce qui suit à l'invite de commande (sous Windows):
Vous pouvez également vouloir inclure
/t 0
pour un arrêt immédiat.J'ai trouvé un bon tutoriel pour configurer un lanceur pour cela: Comment faire un arrêt complet dans Windows 8 sans désactiver le démarrage hybride.
L'approche la plus simple pour arrêter réellement Windows consiste à «redémarrer» (plutôt qu'à «arrêter»), puis à intercepter le processus de démarrage et à démarrer Linux au lieu de le laisser démarrer Windows.
crédit : nobar
la source
Cela peut également se produire si vous utilisez un autre client git en ligne de commande, comme hub .
J'utilise hub comme remplacement alias de git depuis quelques années, mais j'ai récemment écrit un script bash qui fait un tas de travaux git et j'ai commencé à obtenir ce problème de verrouillage d'index.
Je n'ai pas pu trouver le correctif jusqu'à ce que je me souvienne que j'utilisais le hub au lieu de git. J'ai supprimé cela et le problème a disparu!
la source
Obtenir l'erreur:
Mais je n'ai pas pu trouver (ni supprimer) ce fichier .git / index.lock.
Dans mon cas, git-cola courait!
Il crée évidemment ce .git / index.lock de temps en temps, ou causé par le rebase que je faisais sur la ligne de commande et pendant lequel j'ai reçu cette erreur - donc git-cola "perturbe" évidemment la ligne de commande de Git (ou certaines opérations de Git CLI).
Ceci est résolu en fermant git-cola lors d'un rebase de git en ligne de commande.
la source
Parfois, un autre client Git peut interférer lorsqu'il y en a plusieurs installés.
C'est à dire. assurez-vous que le Gestionnaire des tâches ou
Get-Process
celuiTGitCache
de TortoiseGit n'est pas actif en arrière-plan.la source
J'ai eu le même problème récemment. Si vous vérifiez l'ensemble du message d'erreur, il indique également qu'il existe des processus utilisant le processus git qui vous empêchent de supprimer index.lock. Vous pouvez avoir IDE ouvert comme Visual Studio ou un logiciel connexe dans lequel git est intégré. Fermez-le et réessayez de ranger votre fichier. J'espère que ça aide.
la source