Git - घातक: '/path/my_project/.git/index.lock' बनाने में असमर्थ: फ़ाइल मौजूद है


803

मुझे अभी भी यह त्रुटि संदेश मिल रहा है, जब मैं अपने प्रोजेक्ट ट्री को रेपो रे पर स्थानांतरित करने का प्रयास करता हूं।

मैंने इस परियोजना के साथ अपनी निर्देशिका की अनुमति की जाँच की और ये 777 पर सेट हैं। निर्देशिका में टर्मिनल में my_projectमैं सेट के साथ :

git init

और फिर अगर मैं कोशिश करता हूं

जोड़ देना।

या

git कमिट-मी "पहला अपलोड"

इसलिए मुझे त्रुटि मिलेगी

fatal: Unable to create '/path/my_proj/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

मैंने भी एक नया रेपो बनाने की कोशिश की और इसे करने के लिए, लेकिन दुर्भाग्य से अभी भी वही त्रुटि संदेश है।

समस्या का कारण क्या है?


1
मेरे पास यह मुद्दा था क्योंकि मैंने एक अलग टर्मिनल में र के साथ लॉग इन किया था, पहली बार वापस जाने पर सब कुछ ठीक हो गया
maazza


3
भाई मुझे एक ही समस्या थी, "git add" के बजाय "sudo git add। या git कमिट -m" फर्स्ट अपलोड "" का प्रयोग करें। या git कमिट -m "first upload" "
mehdi zahrane

मैंने इसे अनुमतियों में परिवर्तन करके इसे स्थिर कर दिया। प्रति फ़ाइल फ़ाइल stackoverflow.com/questions/14127255/… , Mahshid Zeinaly से उत्तर के लिए देखें
विक्रमवी

जवाबों:


1736

प्रयत्न

rm -f ./.git/index.lock

अपनी रिपॉजिटरी डायरेक्टरी में। त्रुटि संदेश बल्कि यह स्पष्ट है कि यह किस कारण से होता है, इसलिए यदि आपके पास कोई अन्य गिट प्रक्रिया नहीं चल रही है (जो कि सामान्य मामला है), तो आगे बढ़ें और उस फ़ाइल को हटा दें।


7
यह स्वचालित रूप से नहीं होता है। आपको git pushवेब सर्वर पर अपने परिवर्तनों को धकेलने के लिए कमांड निष्पादित करने की आवश्यकता है । यह कैसे काम करता है, इस पर विवरण: gitready.com/beginner/2009/01/21/pushing-and-pulling.html
राफेल आर।

9
मुझे ठीक वैसी ही समस्या हो रही है, लेकिन मैं इसे इस तरह से हल नहीं कर सकता क्योंकि .it / index.lock फ़ाइल मौजूद नहीं है: touch .get/index.lockरिटर्नtouch: .get/index.lock: No such file or directory
इमर्सोथिसिस

24
एमर्सन, आप .it के बजाय .get की तलाश में लग रहे हैं जो मौजूद नहीं होगा।
अपी जूल

3
अनुमति से इनकार करने का मतलब है कि आपको उस उपयोगकर्ता को देने की आवश्यकता है जो आप फ़ाइल पर पढ़ने / लिखने की अनुमति के साथ Git का उपयोग कर रहे हैं। Chmod कमांड देखें (* निक्स या प्रॉपर्टीज पर -> वाइंडो पर सिक्योरिटी टैब)
Stijn de Witt

9
यदि आपकी त्रुटि "अनुमति अस्वीकृत" कहती है, तो आपने संभवतः फ़ाइलों को कहीं और से कॉपी किया है, और न ही निती निर्देशिका पर अनुमतियाँ हैं। ls -lअनुमतियाँ देखने के लिए उपयोग करें , फिर प्रोजेक्ट में सभी फ़ाइलों के लिए उपयोगकर्ता और समूह को अपने स्वयं के लिए उपयोग करने sudo chown -R username ./*और sudo chgrp -R username ./*बदलने के लिए।
chech

158

विंडोज में, रेपो डायरेक्टरी से कमांड प्रॉम्प्ट में ऐसा करें:

cd .git
del index.lock

अद्यतन: मैंने पाया है कि मुझे इस प्रक्रिया को करने की आवश्यकता नहीं है यदि मैं एक क्षण प्रतीक्षा करने के बाद मैं उन फाइलों को बंद कर देता हूं जिन पर मैं काम कर रहा हूं इससे पहले कि मैं शाखाओं को स्विच करने का प्रयास करूं। मुझे लगता है कि कभी-कभी यह समस्या एक धीमी फाइल सिस्टम के साथ पकड़ के कारण होती है। अन्य, अधिक गिट-जानकार डेवलपर्स झंकार कर सकते हैं यदि उन्हें लगता है कि यह सही है।


3
अजीब तरह से, मुझे फ़ाइल के बारे में त्रुटि मिलती है लेकिन तब जब मैं cmd.exe में फ़ाइल को हटाने की कोशिश करता हूं, तो यह कहती है कि फ़ाइल नहीं मिली :) पूर्ण और सापेक्ष पथों के साथ एक ही परिणाम। लेकिन गिट बैश में, यह काम करता है ( rm -f index.lock) के साथ
जूहा अन्टिनेन

मेरे मामले में, मैंने सौर्सेट्री के कुछ हिस्सों को फिर से शुरू करने के बाद "कामोत्तेजना" को अंजाम दिया।
अधिकतम 12

32

Xcode छोड़ने की कोशिश करें - चूंकि यह एक git क्लाइंट है, इसलिए आपको कमांड लाइन पर git की समस्या से बचने के लिए Xcode छोड़ना होगा।


4
अच्छा! ध्यान दें कि Xcode और अन्य Git क्लाइंट अपराधी हो सकते हैं। मेरे मामले में इसने gitX को भी बंद कर दिया।
NSTJ

अपनी लॉक फ़ाइल को 10 बार डिलीट करने के बाद आज सुबह मैं आखिरकार इस जवाब पर अड़ गया। पता नहीं कैसे एक्सकोड खुल गया, लेकिन यह निश्चित रूप से मेरे वर्कफ़्लो को ट्रैश कर रहा था। पारितोषिक के लिए धन्यवाद!
मेघकाली

24

मुझे भी यही समस्या आ रही थी। मैंने कोशिश की

rm -f ./.git/index.lock 

और कंसोल ने मुझे एक त्रुटि संदेश दिया। फिर, मैंने कोशिश की

rm --force ./.git/index.lock

और वह काम किया।

शुभ लाभ! यह सुपर काम करता है


मैं अपने मामले में .गित फ़ोल्डर नहीं देखता। मैं केवल देखता हूं ।/ और ../ जहां तक ​​छिपी हुई निर्देशिका चिंताएं हैं।

आप किस प्रकार के कंप्यूटर पर हैं?
ओलिविया स्टीगर

18

मेरी .it निर्देशिका में, कोई index.lock फ़ाइल नहीं थी। इसलिए, गिट बैश शेल का उपयोग करके, मैं भाग गया ...

cd .git
touch index.lock
rm index.lock

टच कमांड ने फ़ाइल बनाई, और समस्या दूर हो गई।


यह क्यों ठुकराया गया है? मुझे ओपी के समान त्रुटि संदेश मिला। इसने मुझे ठीक कर दिया, और शायद दूसरों की मदद कर सके।
जॉन लीवरमोर

1
मुझे इसका एक मामूली रूप का अनुभव हुआ: (1) मैंने त्रुटि संदेश का अनुभव किया और विभिन्न 'सुधारों' के साथ प्रयोग किया; (२) मैंने पाया कि index.lockअस्तित्व नहीं था; (३) मैंने उपरोक्त touchआदेश का उपयोग किया ; (4) मेरे गिट क्लाइंट ने सामान्य रूप से काम करना बंद कर दिया (सबसे अच्छे रूप में, यह एक क्रॉल को धीमा कर दिया); (५) मैंने हटा दिया index.lock; (६) भंडार ने सामान्य रूप से फिर से काम करना शुरू कर दिया।
क्लियरपूल

निश्चित रूप से, मेरी समस्या को हल नहीं किया जाना चाहिए। मेरे पास एक index.lock फ़ाइल नहीं है, लेकिन एक बार जब मैंने एक बनाया, और बाद में इसे हटा दिया, तो कमिट ने काम किया।
बन्नो

touch index.lockतात्पर्य जॉन * NIX पर था, लेकिन मैंने विंडोज 10 पर बराबर काम किया ( index.lockएक पाठ संपादक के साथ एक फ़ाइल बनाएं , इसे तुरंत हटाएं, और लाभ), और समस्या चली गई।
रफिन

1
@ स्पार्क अपडेट ...
जॉन लीवरमोर

13

क्या आपने गलती से rootउपयोगकर्ता का उपयोग करके रिपॉजिटरी बनाई थी ?

यह सिर्फ ऐसा होता है कि मैंने rootउपयोगकर्ता के रूप में गिट रिपॉजिटरी बनाई ।

मैंने गिट रिपॉजिटरी को डिलीट कर दिया sudoऔर इसे बिना दोबारा बनाए और यह काम करता है।


1
हाँ, यह बात है। धन्यवाद
Natassia Tavares

9

मुझे भी यह समस्या है, और मुझे यह वास्तव में एक अनुमति समस्या लगती है। तो मैं यह करता हूं:

sudo chown -R : .git #change group
sudo chmod -R 775 .git #change permission

तब उत्साह महान है, और गा सफलता है।

और फिर मैं जीपी का उपयोग करता हूं, मुझे लगभग एक ही त्रुटि मिलती है

sudo chown -R "${USER:-$(id -un)}" . #use this can fix the problem

शानदार, यह क्या करता है? "$ {USER: - $ (id -un)}"
Nick

7

मैक ओएस एक्स में यह रेपो डायरेक्टरी से कमांड प्रॉम्प्ट में करें:

cd .git
rm index.lock

1
ऐसी कोई फ़ाइल या निर्देशिका नहीं
चान्नॉक्स

5

यदि आप एक #intelliJIDE का उपयोग कर रहे हैं और इस msg को प्राप्त कर रहे हैं (मैं उपयोग कर रहा हूं #webtorm), तो कृपया ध्यान दें कि यह समस्या किसी एक प्रोजेक्ट फ़ोल्डर (सेटिंग्स के अंदर) को छिपाने के कारण हो सकती है, और यह GITविलय से रोका जा सकता है।


5

मेरे लिए काम करने वाला समाधान उदात्त पाठ को बंद कर रहा था क्योंकि संपादक द्वारा चल रही गिट प्रक्रिया शुरू की गई थी।


मैंने हाल ही में Sublime Text plugin GitSavvy स्थापित किया है और तब से ही यह त्रुटि थी। संकेत के लिए धन्यवाद, @snorkelzebra
कित्ज़ेव

5

यदि आप कोशिश करने के बाद:

rm -f ./.it/index.lock

आपको मिला:

rm: 'index.lock' को अनलिंक नहीं कर सकता: अनुमति अस्वीकृत

Git का उपयोग करने वाले सभी सॉफ़्टवेयर को बंद करने का प्रयास करें। मेरे पास सोर्स ट्री और विजुअल स्टूडियो खुला था और दोनों कमांड को बंद करने के बाद काम किया।


5

विंडोज़ में, मैं केवल टास्क मैनेजर में सभी गिट विंडोज (32 बिट) प्रक्रियाओं के लिए एंडिंग टास्क के बाद लॉक फ़ाइल को हटाने में सक्षम हुआ।

समाधान (विन 10)

1. टास्क मैनेजर में सभी गिट विंडोज (32 बिट) प्रक्रियाओं के लिए कार्य समाप्त करें

2. .git / index.lock फ़ाइल हटाएं


4

मेरे मामले में समाधान 5 मिनट इंतजार करना था। जाहिर है मेरा पिछला ऑपरेशन अभी भी चल रहा था लेकिन मुझे अभी पता नहीं था। मैं खिड़कियों पर कछुआ गिट का उपयोग कर रहा था।



4

मुझे लगता है कि फ़ाइल को हटाने की तुलना में एक बेहतर समाधान है (और भगवान जानते हैं कि सूडो के साथ फ़ाइल को हटाने / बनाने पर आगे क्या होगा):

git gc

3

.git/index.lockनीचे दी गई कमांड का उपयोग करके आपको इसे हटाने में समस्या है ।

कमान:

सुडो rm -rf .git / index.lock


3

मैंने कई बार कई तरीकों से इसकी कोशिश की, लेकिन इसने मेरे लिए काम किया (मैंने PyCharm के टर्मिनल का इस्तेमाल किया):

$ cd .git/

$ rm -f index.lock

फिर मैंने एक खाली गिट रेपो बनाने की फिर से कोशिश की:

$ git init

$ git add .

$ git commit -m "commit msg"

3

यदि यह एक सबमॉड्यूल है, तो अपनी रिपॉजिटरी डायरेक्टरी पर इसके बजाय यह प्रयास करें:

rm -f ../.git/modules/submodule-name/index.lock

सबमॉड्यूल्स-नाम को अपने सबमॉड्यूल नाम में बदलें।


2

इस समस्या के समाधान के लिए निर्देशिका में तीन xcode / प्रोजेक्ट फ़ाइलों की प्रतिलिपि बना रहा है और फिर नई निर्देशिका (जहाँ भी हो) बना रहा है और फिर तीन फ़ाइलों / निर्देशिकाओं को चिपकाएँ।


2

इसके अलावा, हम सिर्फ गिट प्रक्रिया को मार सकते हैं। मुझे गिट के लिए जीयूआई ऐप के माध्यम से एक ही मुद्दा मिलता है, कुछ गलत हो जाता है और जीआईटी कुछ काम करता है। किलिंग प्रक्रिया, गिट के साथ काम करने वाले एप्लिकेशन को फ्रीज कर देगी, बस इसे फिर से शुरू करें और सबकुछ ठीक हो जाएगा।


2

मामले में, जो भी कारण के लिए, आप एक क्लाउड सेवा (ड्रॉपबॉक्स, ड्राइव, ऑनड्राइव, आदि) द्वारा सिंक किए जा रहे फ़ोल्डर से एक रिबास कर रहे हैं, आपको सिंक को रोकना या बंद करना चाहिए क्योंकि यह रिबेस के दौरान अनुमतियों में हस्तक्षेप करेगा ।



2

मैंने अपनी निर्देशिका अनुमति बदल दी थी, इसलिए मुझे पता था कि यह संबंधित अनुमति हो सकती है। मेरे मामले में मैंने अनचाहे (_www) उपयोगकर्ताओं को हटा दिया और फिर सभी सामग्रियों में परिवर्तन करके सभी को पढ़ने / लिखने की अनुमति दे दी। यह मैक पर है

मैक पर निर्देशिका की अनुमति


2

सभी हटाए गए आदेशों ने मेरे लिए काम नहीं किया जो मैंने किया था वह गिट में उपलब्ध पथ का उपयोग करके नेविगेट करना था और फिर इसे मैन्युअल रूप से हटा देना था।


2

ऐसा करने के लिए एटम platformio-atom-ide-terminal प्लगिन का उपयोग न करें । अपने DISTRO के टर्मिनल का प्रत्यक्ष रूप से उपयोग करें।

रिबासिंग / स्क्वीटिंग करते समय मुझे यह त्रुटि मिलती रही और न जाने क्यों, क्योंकि मैंने इसे कई बार पहले किया था।

इससे कोई फर्क नहीं पड़ता कि मैं कितनी बार हटाऊंगा index.lock फ़ाइल हटाऊंगा, हर बार यह विफल हो जाएगा।

यह पता चला है क्योंकि मैं ATOM EDITOR टर्मिनल प्लगइन का उपयोग कर रहा था । एक बार जब मैंने उबंटू के साथ जहाजों का उपयोग किया, तो यह एक आकर्षण की तरह काम करता था।


2

बस इस निर्देशिका के लिए D: /project/androidgc/.git/ पर जाएं और index.lock को हटा दें।


1

यदि कोई व्यक्ति git svn का उपयोग कर रहा है, तो मुझे भी यही समस्या थी, लेकिन फाइल को नहीं हटा सकता था क्योंकि यह वहां नहीं था!। अनुमतियों की जांच करने के बाद, फ़ाइल को छूना और उसे हटाना, और मुझे याद नहीं है कि और क्या है, इसने यह चाल चली:

  • मास्टर शाखा की जाँच करें।
  • git svn rebase (मास्टर पर)
  • उस शाखा की जांच करें जिस पर आप काम कर रहे थे
  • git svn rebase

1

थोड़ा जोड़ना क्योंकि मुझे वास्तविक समाधान प्राप्त करने के लिए विभिन्न उत्तरों का उपयोग करना था (मेरे लिए)।

यह मेरे लिए किया:

  1. जिस शाखा पर आप काम कर रहे हैं, उसे खोलें
  2. खुला टर्मिनल (मैं Git GUI में टर्मिनल का उपयोग करता हूं)
  3. कमांड में टाइप करें: cd .git
  4. कमांड में टाइप करें: rm -f index.lock

-Forceइसके बजाय कुछ का उपयोग करना पड़ सकता है -f। आप अपने टर्मिनल की कमांड लाइनों को अपने टर्मिनल में एक कमांड निष्पादित करके जांच सकते हैं जैसे git help:।


0

सभी समाधान सही हैं:

Just remove .git from your corrupted repository, 

then copy this file if back from another clone (if you don't have it in another machine, just clone it).

अंत में, मुझे क्या फर्क पड़ा:

  • प्रयोग करने से बचें sudo या अनज़िप करने के लिए नई .git फ़ोल्डर की प्रतिलिपि। यदि आप इसे बनाने के लिए सुपरयुसर अधिकारों का उपयोग करते हैं, तो .it फ़ोल्डर तक पहुंच नहीं होगी

0

यह तब हुआ था जब मैं रेपो के मूल फ़ोल्डर (यानी निर्देशिका जिसमें .git) के अनुरूप निर्देशिका में एक उपनिर्देशिका में था। रूट डायरेक्टरी तक जाने से समस्या हल हो गई - सभी फ़ाइल संदर्भों को थोड़ा और असुविधाजनक बनाने की कीमत पर, क्योंकि आपको केवल foo.ext के बजाय पथ / / to / folder / foo.ext पर जाना होगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.