git index.lock फ़ाइल तब मौजूद होती है जब मैं कमिट करने की कोशिश करता हूं, लेकिन फ़ाइल को डिलीट नहीं कर सकता


197

जब मैं 'कमिट' करता हूं, तो मुझे निम्नलिखित मिल रहे हैं:

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

हालाँकि, जब मैं ls project_path/.git/index.lockयह कहता हूँ कि फ़ाइल मौजूद नहीं है। मुझे क्या करना चाहिए पर कोई विचार? मैंने यह भी देखा है कि project_path / .it रूट के स्वामित्व में है, निश्चित नहीं है कि अगर मुझे जो समस्या आ रही है उससे मुझे कोई लेना देना नहीं है।

git संस्करण 1.7.5.4 है

संपादित करें: ऐसा लगता है कि समस्या सबसे अधिक संभावना थी कि मेरे पास एक और प्रक्रिया थी, जो परियोजना निर्देशिका के लिए (मेरे लिए अनजान) लिख रही थी। मैंने अपनी मशीन को फिर से शुरू किया और फिर मुझे कोई समस्या नहीं हुई।


3
यह बहुत अच्छी तरह से अनुमतियाँ समस्या हो सकती है जहाँ Git यह मानता है कि चूंकि यह फ़ाइल पहले से मौजूद नहीं है। क्या आपने निर्देशिका का स्वामित्व लेने या sudo का उपयोग करके अपनी कमांड निष्पादित करने का प्रयास किया है?

1
मुझे लगता है कि गिट रेपो तक पहुँचने वाले दूसरे ऐप पर आपका स्पष्टीकरण सही है। एक रिबेस के दौरान यही समस्या थी। गिटक्स चल रहा था। एक बार मैंने इसे छोड़ दिया ठीक काम किया।
द हू

2
@ साही: क्या आप शायद इसका जवाब स्वीकार करना चाहते हैं? इससे भविष्य के पाठकों को मदद मिलेगी।
MERose


3
@ साही: आप एक उत्तर के रूप में अपने संपादन की सामग्री (जो समाधान था) को पोस्ट कर सकते हैं और फिर उसे स्वीकार कर सकते हैं। (हालांकि 'मशीन को पुनः आरंभ करने' से अधिक सामान्य समाधान यह है कि एक अन्य प्रक्रिया निर्देशिका तक पहुंच रही थी, फिर भी गॉर्डियन गाँठ के माध्यम से कटौती को पुनः आरंभ करने की कोशिश की गई कि कौन और क्यों।:) मेरे मामले में, यह मेरी आईडीई थी।) वैसे भी, लोग अक्सर अपने स्वयं के प्रश्नों का उत्तर देते हैं जब वे अपने स्वयं के समाधान पाते हैं, जो आपने किया था।
विल्सन एफ

जवाबों:


329

यह एक पुराना उत्तर हो सकता है लेकिन मुझे उम्मीद है कि यह अगले पर अधिक उपयोगी है, जिन्हें इस समाधान की आवश्यकता है।

Linux / unix / gitbash / cygwin पर, कोशिश करें

rm -f .git/index.lock

Windows कमांड प्रॉम्प्ट पर, कोशिश करें:

del .git\index.lock


1
मैं देखता हूं कि कभी-कभी लॉक फाइल अपने आप डिलीट हो जाती है। किसी भी सुराग क्यों इस फ़ाइल को कभी-कभी मैन्युअल रूप से हटाने की आवश्यकता होती है?
Nrj

मैं एक index.lock नहीं है, क्या करते हैं? :(
एलेक्स सी

56
यह देखते हुए कि प्रश्न में समस्या यह थी कि वह फ़ाइल को हटाने में सक्षम नहीं था, आपको क्यों लगता है कि फ़ाइल को हटाने का प्रयास किया जाना चाहिए?
skyking

4
मेरे लिए सोर्सट्री को बंद करने और खोलने से समस्या हल हो गई ... अस्थायी रूप से मुझे लगता है।
एंड्रयू

1
मूल प्रश्न में @skyking एक त्रुटि है जो कहती है fatal: Unable to create 'project_path/.git/index.lock': File exists., यह "फ़ाइल मौजूद है" कहती है, और इसे हटा देना सरल समाधान होगा। अगर यह मूल प्रश्न में भी नहीं है तो मैं फ़ाइल को हटाने का सुझाव क्यों दूंगा?
रयान एस

40

विंडोज के लिए:

  • व्यवस्थापक के रूप में खोले गए एक पॉवरशेल कंसोल से, प्रयास करें
> rm -Force ./.git/index.lock
  • यदि वह काम नहीं करता है, तो आपको सभी git.exe प्रक्रियाओं को मारना होगा
> taskkill /F /IM git.exe
SUCCESS: The process "git.exe" with PID 20448 has been terminated.
SUCCESS: The process "git.exe" with PID 11312 has been terminated.
SUCCESS: The process "git.exe" with PID 23868 has been terminated.
SUCCESS: The process "git.exe" with PID 27496 has been terminated.
SUCCESS: The process "git.exe" with PID 33480 has been terminated.
SUCCESS: The process "git.exe" with PID 28036 has been terminated.
> rm -Force ./.git/index.lock

1
पैरामीटर संसाधित नहीं किया जा सकता क्योंकि पैरामीटर नाम 'f' अस्पष्ट है।
3pitt

धन्यवाद, @ मायकेप्लास्मिस, मैंने अपडेट किया -Force। लगता है कि उन्होंने एपीआई
आंद्रेई एप्योर

20

SourceTree (v1.6.14.0) के संयोजन में विजुअल स्टूडियो 2015 RC (v4.6.00057) चलाने वाले विंडोज प्लेटफॉर्म पर यह त्रुटि भी देगा।

समाधान: मान लें कि आप स्रोत कोड प्रबंधक के रूप में स्रोत ट्री का उपयोग करना चाहते हैं, तो बस इस तरह Visual Studio के अंदर स्रोत नियंत्रण प्रदाता को अक्षम करें:

  1. पर जाएँ: उपकरण> विकल्प> स्रोत नियंत्रण
  2. वर्तमान स्रोत नियंत्रण प्लग-इन का चयन करें: कोई नहीं

हालांकि मेरे वीएस को उन रिपॉजिटरी तक भी पहुंचने की अनुमति नहीं है, फिर भी सोर्सट्री के साथ रिबासिंग करते समय यह समस्या थी।
कजेटन एबट

धन्यवाद, समस्या अभी भी अपडेट 3 के साथ है।
एल्गर मेंसोनाइड्स

क्लोज़िंग विज़ुअल स्टूडियो भी काम करता है (index.lock फ़ाइल को हटा दिया गया है)
misterbee

10
  1. जाँच करें कि क्या अभी भी चल रहा है (ps -ef | grep git)
  2. यदि नहीं, तो बंद फ़ाइल को हटा दें
  3. यदि हाँ, तो पहली बार git प्रक्रिया को मारें।

9

प्रयत्न

rm -f ./.git/index.lock

यदि आपके पास कोई अन्य git प्रक्रिया नहीं चल रही है, तो संबंधित प्रोजेक्ट की index.lock फ़ाइल को हटा दें।


मेरे मैक के वातावरण पर काम किया।
एडम हर्विट्ज़

6

बस यह मुद्दा था ... Gitbox गलती पर था। तो शायद आपके पास एक GUI चल रहा था जो समस्याओं का कारण बन रहा था।


यह एक GUI नहीं था, लेकिन मेरे पास एक अलग प्रक्रिया थी जो परियोजना निर्देशिका को लिख रही थी। मैं इसका पता नहीं लगा सका और यह मुझे पागल कर रहा था।
असाही

ऐसा लग रहा है कि GitX को यह समस्या भी पसंद है।
ग्लूटेक्सो

6 साल बाद, मेरे लिए यह एटम था
मिल्क

6

यह तब हो रहा है जब आप बीच में मूल से पुलिंग रद्द कर रहे हैं।

तो तुम क्या कर सकते हैं मैन्युअल रूप से अपने .it निर्देशिका से index.lock फ़ाइल को हटा दें।

rm -f ./.git/index.lock

cd में आप प्रोजेक्ट डायरेक्टरी करते हैं और इस कमांड को चलाते हैं।


8
यह देखते हुए कि प्रश्न में समस्या यह थी कि वह फ़ाइल को हटाने में सक्षम नहीं था, आपको क्यों लगता है कि फ़ाइल को हटाने का प्रयास किया जाना चाहिए?
skyking

+1 @ स्कीइंग। किसी फ़ाइल को हटाना स्पष्ट है, समस्या को हटाने के लिए कोई फ़ाइल नहीं है और समस्या बनी रहती है।
कैटसुनामी

6
  1. प्रत्येक विंडो को बंद करें जो संभावित रूप से इस .it / index.lock फ़ाइल को प्रभावित कर रही है
  2. .Git / index.lock फ़ाइल हटाएं।
  3. अपने कमांड लाइन के संपादक को खोलें और अपनी git फ़ाइलों के स्थान पर cd करें।

(यदि फ़ाइल बनाई जाती है, बस उस स्थान पर सीडी से, तो समस्या आपके संपादक की है। अपने संपादक को बंद कर दें। इस कार्य के लिए इस संपादक का फिर से उपयोग न करें। एक अलग तरह का संपादक खोलें - विंडोज़ पावर शेल या बस सेमी। अब। जारी रखने के लिए आप git कमांड का उपयोग कर सकते हैं)


5

संभवतः (यह मेरे साथ हुआ है), ls कमांड कह रहा है कि यह मौजूद नहीं है क्योंकि वर्तमान उपयोगकर्ता के पास उस निर्देशिका या फ़ाइल तक पहुँचने की अनुमति नहीं है।

अनुमति समस्याओं से बचने के लिए लॉक निकालें और सुनिश्चित करें कि आप सही उपयोगकर्ता के साथ गिट निष्पादित कर रहे हैं

यदि आप एक GNU / Linux बॉक्स में sudo कमांड के साथ हैं :

sudo rm project_path / .git / index.lock


विंडोज में, आप देख सकते हैं कि क्या फ़ोल्डर केवल राइट-क्लिक के साथ पढ़ा गया है-> गुण-> विशेषताएँ।
मैट

यह देखते हुए कि प्रश्न में समस्या यह थी कि फ़ाइल गैर-मौजूद थी, आपको क्यों लगता है कि फ़ाइल को हटाने का प्रयास समाधान होना चाहिए?
आसमान छू रहा है

@ स्काउटिंग अनुमति की समस्याएं समान त्रुटि दिखाती हैं। दरअसल, मैं इस सवाल पर आया था क्योंकि शीर्षक। मैंने अपना उत्तर एक संभावित समाधान के रूप में लिखा था और कुछ मत इस बात की पुष्टि करते हैं कि यह अन्य लोगों के लिए भी होता है;)
कैलिगारी

@ कालीगढ़ी बिल्कुल नहीं। अनुमति समस्या एक और उत्तर देती है ls project_path/.git/index.lock
11

5

del .git\index.lock मेरे लिए काम किया।

मैं इस मामले का सामना कर रहा था, जबकि मास्टर शाखा से एक नई शाखा की जाँच कर रहा था।

index.lockफ़ाइल को हटाने के बाद आसानी से चेकआउट हुआ ।


4

कभी-कभी Git आपके रेपो से जुड़ी एक लॉक फाइल बनाता है जब आप कोई बदलाव कर रहे होते हैं या शायद तब जब आप सब मॉड्यूल का उपयोग कर रहे हों। त्रुटि संदेश आपको लॉक फ़ाइल का पथ दिखाएगा। फिक्स: बस मैन्युअल रूप से टर्मिनल में पथ पर जाएं और $ rm index.lock द्वारा लॉक फ़ाइल को हटा दें

इसकी मदद करनी चाहिए।


4

सोर्सट्री के साथ मुझे यह समस्या थी जब शाखा को डबल-क्लिक करके स्विच करना। समस्या बहुत आम नहीं है और एटलसियन को इसके बारे में पता है लेकिन उन्होंने इसे ठीक नहीं करने का फैसला किया।

सौभाग्य से, वहाँ एक समाधान है। जिस शाखा पर आप स्विच करना चाहते हैं, उस पर डबल-क्लिक करने के बजाय, बस राइट क्लिक करें और "चेकआउट [शाखा का नाम]" चुनें। यह अब सफल होना चाहिए।


धन्यवाद, राइट क्लिक> चेकआउट एक विकल्प के रूप में काम करता है। त्रुटि संदेश काफी भ्रामक है, खासकर जब index.lock मौजूद नहीं है।
अर्नेस्ट

4

मैं एक ही परिदृश्य में आया हूं। मैंने अपने स्थानीय कोड में भी कोई बदलाव नहीं किया है। मैंने अभी एक फाइल को एडिट किया है और उसे रिवर्ट किया है। मैंने नीचे दी गई फ़ाइल को छिपे हुए .गित फ़ोल्डर में हटा दिया है। इसने काम कर दिया!

project_path / .git / index.lock


3

जब तक आप वास्तव में अपने रेपो के मूल के लिए इरादा नहीं करते हैं, तब तक यह लगता है कि आपने गलती से एक रूट कमांड को रूट के रूप में चलाया (शायद प्रारंभिक क्लोन / इनिट)। यदि आप ऐसा करना चाहते हैं, तो आपको रेपो में रूट के रूप में सभी Git कमांड चलाने के साथ रहना होगा। यदि आप ऐसा नहीं sudo chown your-user[:your-group] -R .gitकरते हैं, तो इसका स्वामित्व लेने के लिए दौड़ें , और फिर देखें कि क्या चीजें काम करती हैं।


मेरे मामले में मैंने फ़ाइलों और निर्देशिकाओं के मोड को गड़बड़ कर दिया था .gitऔर मैंने उनके साथ सही किया: find .git -type f -exec chmod 644 {} \;और साथ ही find .git -type d -exec chmod 755 {} \;मैंने अपने कंप्यूटर से दूसरे कंप्यूटर पर अपने git प्रोजेक्ट को स्थानांतरित करते समय मोड्स को गड़बड़ कर दिया था
user3405291

मेरे मामले में मैंने .गित फ़ाइलों के लिए लिखने की अनुमति जोड़ दीsudo chmod g+w .git -R
बीट्रीज़ फोंसेका

2

एक ही स्थानीय रिपॉजिटरी पर काम करने वाले कई गिट क्लाइंट उस लॉक के लिए प्रतिस्पर्धा करते हैं। प्रत्येक ग्राहक को तब तक इंतजार करना चाहिए जब तक कि एक अच्छा नागरिक बनने के लिए दूसरे पक्ष द्वारा ताला जारी नहीं किया जाता है। हमारे लिए, सोर्सट्री या एमएसवीएस पृष्ठभूमि में कुछ रखरखाव कर रहे हैं, जबकि हम बड़ी प्रतिबद्ध स्क्रिप्ट चला रहे हैं।

शायद 'git' को ही '--retriesWhenLocked 5' तर्क का समर्थन करना चाहिए। या मैन्युअल रूप से चलाने पर यह डिफ़ॉल्ट रूप से भी।

यहाँ "gitr" नाम के git के चारों ओर एक PowerShell आवरण है, जो index.lock तक गायब रहता है, डिफ़ॉल्ट 5 कोशिशों का उपयोग करके, प्रत्येक के बीच 3 सेकंड। यह कभी भी index.lock को हटाता नहीं है, यह मानते हुए कि उपयोगकर्ता को हस्तक्षेप करना चाहिए। इसे एक बड़ी प्रतिबद्ध स्क्रिप्ट से निकाला गया था। यह केवल सरल तर्कों के साथ न्यूनतम परीक्षण है।

  • C: \ bin में स्क्रिप्ट कॉपी करें और $ PATH में C: \ bin जोड़ें।
  • PS1> से gitr --help
  • DOS%> से पॉवरशेल gitr --help

gitr.ps1

    #requires -version 2
    <#
    .SYNOPSIS
        gitr
    .DESCRIPTION
        Run "git" as an external process with retry and capturing stdout stderr.
    .NOTES  
      2017/05/16 crokusek: Initial version
    #>

    #---------------------------------------------------------[Initializations]--------------------------------------------------------

    #Set Error Action 
    $ErrorActionPreference = "Stop";

    #----------------------------------------------------------[Declarations]----------------------------------------------------------

    $scriptDir = Split-Path $script:MyInvocation.MyCommand.Path
    #Set-Location $scriptDir

    ## Disabled logging
    # Log File 
    # $logFile = "$($scriptDir)\getr.log"
    # If (Test-Path $logFile) { Clear-Content $logFile }

    #-----------------------------------------------------------[Functions]------------------------------------------------------------

    Function Log([string]$msg, [bool]$echo = $true)
    {
        $timestamp = "$(get-date -Format 'yyyy/MM/dd HH:mm:ss'):  " 
        $fullmsg = $msg -replace '(?ms)^', $timestamp  # the (?ms) enables multiline mode

        ## Disabled Logging 
        # Add-content $LogFile -value $fullmsg

        if ($echo)
        {
            Write-Host $msg
        }
    }

    Function ExecSimple([string]$command, [bool]$echo=$true, [bool]$stopOnNonZeroExitCode=$true)
    {
        $command, $args = $command -split " "
        return Exec $command $args $echo $stopOnNonZeroExitCode
    }

    Function Exec([string]$exe, [string[]]$arguments, [bool]$echo=$true, [bool]$stopOnNonZeroExitCode=$true)
    {   
        # Passing $args (list) as a single parameter is the most flexible, it supports spaces and double quotes

        $orgErrorActionPreference = $ErrorActionPreference 
        Try
        {           
            $error.clear()  # this apparently catches all the stderr pipe lines

            if ($false -and $exe -eq 'git')  # todo make this a generic flag
            {
                $exe = "$($exe) 2>&1"
            }

            $output = ""

            $argflattened = $arguments -join ' '
            Log "`n% $($exe) $($arguments)`n"

            # This way some advantages over Invoke-Expressions or Start-Process for some cases:
            #      - merges stdout/stderr line by line properly, 
            #      - echoes the output live as it is streamed to the current window,
            #      - waits for completion
            #      - works when calling both console and windows executables.
            #       
            $ErrorActionPreference = "Continue"  # required in order to catch more than 1 stderr line in the exception

            if ($echo)
            {
                # Using "cmd.exe" allows the stderr -> stdout redirection to work properly.  Otherwise the 2>&1 runs after PS for 
                # some reason.  When a command such as "git" writes to stderr, powershell was terminating on the first stderr 
                # line (and stops capturing additional lines).
                #
                # but unfortuantely cmd has some bizarre de-quoting rules that weren't working for all cases. 
                #& cmd /c "`"" $exe $arguments "`"" | Tee-Object -variable output | Write-Host | out-null           

                # This is simplest but has some issues with stderr/stdout (stderr caught as exception below)
                #
                & $exe $arguments 2>&1 | tee -variable output | Write-Host | out-null 
            }
            else
            {           
                & $exe $arguments 2>&1 | tee -variable output | out-null 
            }

            $output = $output -join "`r`n"                  

            if ($stopOnNonZeroExitCode -and !$LASTEXITCODE -eq 0)
            {           
                throw [System.Exception] "Exit code ($($LASTEXITCODE)) was non-zero. Output:`n$($output)"
            }       
        }
        catch [System.Management.Automation.RemoteException]
        {
            $output = $_.Exception.ToString().Replace("System.Management.Automation.RemoteException:", "").Trim()

            if ($output.Contains("fatal")) 
            {
                throw 
            }

            if ($echo)
            {
                Log $output
            }
        }
        finally
        {
            $ErrorActionPreference = $orgErrorActionPreference;
        }

        if (-not $output -eq "")
        {
            Log $output $false  # don't echo to screen as the pipe above did    
        }

        return $output
    }

    Function ExecWithRetry([string]$exe, [string[]]$arguments, [bool]$echo=$true, [bool]$stopOnNonZeroExitCode=$true, 
                          [int]$maxRetries = 5, [int]$msDelay = 3000, [AllowNull()][string]$exceptionMustContain = $null)
    {
        for ($i = 0; $i -lt $maxRetries; $i++)
        {
            try
            {
                Exec $exe $arguments $echo $stopOnNonZeroExitCode
                return
            }
            catch
            {
                if (-not [string]::IsNullOrEmpty($exceptionMustContain) -and $_.Exception.ToString().Contains($exceptionMustContain))
                {
                    Log "Last Error from $($exe) is retryable ($($i + 1) of $($maxRetries))" $true
                    Start-Sleep -Milliseconds ($msDelay);
                    continue
                }

                throw
            }
        }

        throw [System.Exception] "Unable to successfully exec '$($exe)' within $($maxRetries) attempts."
    }

    Function GitWithRetry([string[]]$arguments, [bool]$echo=$true)
    {
        ExecWithRetry "git" $arguments $echo -exceptionMustContain "Another git process seems to be running"
    }

#-----------------------------------------------------------[Main]------------------------------------------------------------

function Main([string[]]$arguments)
{   
    GitWithRetry @($arguments)
}


#-------------------------------------- Startup ------------------------------------
try 
{
    Main $args
    Exit 0
}    
catch
{
    #Log "*** A fatal error occured: $($_.Exception)"
    #Read-Host -Prompt "`nA fatal error occurred, press enter to close."    
    exit 1
}

2

मेरा यह सवाल विंडोज़ 10 में भी है।

जब मैं डेल की कोशिश करता हूं ./.git/index.lock, तो उसने मुझे बतायाcannot remove 'index.lock': Device or resource busy

मुझे आखिरकार कारण मिल गया:

कंप्यूटर में git का उपयोग करने के लिए दो प्रक्रिया है:

  • गिट बश
  • cmder

इसलिए मैं cmder.exe का उपयोग करता हूं, git commitइसमें त्रुटियां होंगी।

इसलिए समाधान का उपयोग है git bashया git bashतत्कालीन उपयोग cmder.exe को समाप्त करें


1

मेरे पास यह सटीक त्रुटि थी, लेकिन समस्या लॉक फ़ाइल नहीं थी। इसके बजाय मुद्दा यह था कि मैंने एक अन्य git रेपो की सामग्री को इस रेपो में कॉपी किया था, जिसमें .git अदृश्य फ़ोल्डर शामिल था। इसलिए, सोर्सट्री उलझन में थी कि मैं किस रेपो में फ़ाइलों को स्टेज करना चाहता था (रेपो सोर्सट्री के बीच एक बेमेल विचार था कि मैं अंदर था, और एक जो कि मेरे एम्बेडेड .गित डायर की सामग्री मुझे कहा जाना चाहिए)।


1

मुझे विंडोज पर Cygwin के साथ TortoiseGit के साथ यह समस्या थी। मैं हटाने में सक्षम नहीं था ।/.it/index.lock यहां तक ​​कि प्रशासनिक विशेषाधिकारों के साथ, मैंने साइगविन और कमांड प्रॉम्प्ट दोनों की कोशिश की, यह कहा कि फाइल एक अन्य प्रक्रिया द्वारा उपयोग में थी।

मैंने पाया कि मेरे पास TortoiseProc.exe के 2 उदाहरण हैं। मैंने उनमें से एक को मार डाला, और मेरे सभी विंडोज़ एक्सप्लोरर विंडो बंद कर दिए, और फिर फ़ाइल को हटाने में सक्षम था। मुझे नहीं पता कि TortoiseProc.exe का एक उदाहरण हत्या करना समाधान या विंडोज़ एक्सप्लोरर विंडो बंद करना था।


1

मेरे लिए समाधान .index फ़ाइल को हटाने और Git को दूसरे के पुनर्निर्माण की अनुमति देना था।


1

मेरे पास हटाने के लिए एक नीच फ़ाइल नहीं थी, लेकिन मेरे लिए जो काम किया वह था फ़ोल्डर गुण संवाद के गुण विंडो से रीड-ओनली चेक निकालना।



1

जीआईटी 2.8.4 (जून 2016) से शुरू , यह अब नहीं होना चाहिए।

अंक 755 देखें जिसमें समस्या को कम करना चाहिए ( 2db0641 पर ):

सुनिश्चित करें कि अस्थायी फ़ाइल हैंडल बच्चे प्रक्रियाओं द्वारा विरासत में नहीं मिले हैं

संभाल करने के लिए विरासत को संभालने से बाल प्रक्रियाओं को रोकें index.lock


1

मेरे सोर्सट्री एप्लिकेशन में मैं कमिट नहीं कर पा रहा हूं या किसी अन्य कमिट / ब्रेक पर स्विच नहीं कर पा रहा हूं। उस समय की तरह त्रुटि दिखाता है

घातक: ब्ला ब्ला बनाने में असमर्थ ।।

मैं बस गोटो .it फ़ोल्डर (प्रोजेक्ट एक्सप्लोरर डार में) द्वारा इसे हल करता हूं। और इंडेक्स को डिलीट करें ----- [फाइल का प्रकार: LOCK फाइल] .अब मुझे sourceTree में सभी एक्सेस वापस मिलें ..

कृपया सुनिश्चित करें कि इंडेक्स लॉक फ़ाइल .. मान लें कि आपको फ़ाइल प्रकार नहीं मिला है, कंप्यूटर में फ़ाइलव्यू सेटिंग्स बदलें। नोट: .गित फ़ोल्डर सामान्य रूप से छिपा हुआ प्रकार का फ़ोल्डर है।


1

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

git rebase --abort और फिर से शुरू करें।

जैसा कि एंड्रयू ने उल्लेख किया है कि मैं भी PHPStorm का उपयोग कर रहा था जब यह हुआ। हालांकि इसे बंद नहीं करना था।


1

सबसे पहले आपको अपने प्रोजेक्ट के विशिष्ट फ़ोल्डर में नेविगेट करना होगा। जैसे कि यदि आपके प्रोजेक्ट का नाम Firstproject है तो सबसे पहले प्रोजेक्ट की डायरेक्टरी पर जाएं .. फिर cd .it टाइप करें और फिर git फोल्डर में नेविगेट करने के बाद del index.lock के बाद। फ़ाइल index.lock का विलोपन..आप पहले की तरह ही कमिट और पुश कर पाएंगे


1

मेरे मामले में, यह विंडोज़ था, पूरी तरह से बंद नहीं हुआ।

विंडोज को हाइबरनेट किया गया है, माउंट करने से इनकार कर दिया गया है

संभावना है कि विंडोज वास्तव में हाइबरनेट है। जब आप इसे सामान्य रूप से बंद करने के लिए कहते हैं तो विंडोज स्वचालित रूप से करता है। लाभ यह है कि आपको एक तेज़ स्पष्ट स्टार्ट-अप समय मिलता है।

हाइबरनेट किए बिना विंडोज को बंद करने के लिए, कमांड-प्रॉम्प्ट पर (विंडोज में) निम्नलिखित को जारी करें:

shutdown /s

आप /t 0तत्काल शटडाउन के लिए भी शामिल कर सकते हैं ।

मुझे इसके लिए एक लांचर सेट करने के लिए एक अच्छा ट्यूटोरियल मिला: विंडोज 8 में पूर्ण शटडाउन कैसे करें बिना हाइब्रिड बूट को अक्षम किए।

वास्तव में विंडोज को बंद करने का सरल तरीका 'रिस्टार्ट' ('शटडाउन' के बजाय) है, लेकिन फिर बूट प्रक्रिया और बूट लिनक्स को बूट करने के बजाय इसे विंडोज को इंटरसेप्ट करें।

क्रेडिट : nobar


1

यह तब भी हो सकता है यदि आप एक वैकल्पिक कमांड लाइन git क्लाइंट का उपयोग कर रहे हैं, जैसे हब

मैं कुछ वर्षों के लिए git के लिए एक अन्य प्रतिस्थापन के रूप में हब का उपयोग कर रहा हूं, लेकिन हाल ही में एक बैश स्क्रिप्ट लिखी है जो इसमें git का एक गुच्छा काम करती है, और इस सूचकांक लॉक मुद्दे को प्राप्त करना शुरू कर दिया है।

जब तक मुझे याद नहीं आया मैं git के बजाय हब चला रहा था। मैंने वह हटा दिया और समस्या दूर हो गई!


0

त्रुटि प्राप्त करना:

Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
fatal: Unable to create '/home/user/project/.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.

लेकिन मुझे वह (। डिलीट नहीं) मिल सकती है। वो / index.lock फ़ाइल।

मेरे मामले में, गिट-कोला चल रहा था!

यह स्पष्ट रूप से बनाता है कि .it / index.lock हर एक बार थोड़ी देर में, या रिबेस के कारण मैं कमांड लाइन पर कर रहा था और जिसके दौरान मुझे वह त्रुटि मिली - तो git-col जाहिर है "डिस्टर्ब" Git का कमांड लाइन रन (या कुछ गिट सीएलआई संचालन)।

यह एक कमांड लाइन git रिबास के दौरान git-cola को बंद करके हल किया जाता है।


0

कभी-कभी जब एक से अधिक इंस्टॉल किए जाते हैं तो एक और Git क्लाइंट हस्तक्षेप कर सकता है।

अर्थात। कार्य प्रबंधक के साथ सुनिश्चित करें Get-Processकि या TGitCacheकछुआ से पृष्ठभूमि में सक्रिय नहीं है।


0

मेरा हाल ही में यही मुद्दा था। यदि आप संपूर्ण त्रुटि संदेश की जाँच करेंगे, तो यह भी कहता है कि कुछ प्रक्रिया है जो git प्रक्रिया का उपयोग कर रही है जो आपको index.lock को हटाने से रोकती है। आपके पास विजुअल स्टूडियो या संबंधित सॉफ़्टवेयर की तरह IDE खुला हो सकता है जिसे git में एकीकृत किया गया है। इसे बंद करें और अपनी फ़ाइल को फिर से स्टैशिंग करें। आशा करता हूँ की ये काम करेगा।

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