git index.lock Tệp tồn tại khi tôi cố gắng cam kết, nhưng không thể xóa tệp


197

Khi tôi thực hiện 'git commit', tôi sẽ nhận được những điều sau:

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

Tuy nhiên, khi tôi nói ls project_path/.git/index.locknó không tồn tại. Bất kỳ suy nghĩ về những gì tôi nên làm? Tôi cũng nhận thấy rằng project_path / .git thuộc sở hữu của root, không chắc điều đó có liên quan gì đến vấn đề tôi gặp phải không.

phiên bản git là 1.7.5.4

chỉnh sửa: Có vẻ như vấn đề rất có thể là một quá trình khác mà tôi đã chạy, đó là viết (không biết đến tôi) vào thư mục dự án. Tôi khởi động lại máy và sau đó tôi không gặp vấn đề gì.


3
Nó rất có thể là một vấn đề về quyền trong đó Git giả định rằng vì nó không thể tạo tệp mà nó đã tồn tại. Bạn đã thử sở hữu thư mục hoặc thực hiện lệnh của bạn bằng sudo chưa?

1
Tôi nghĩ rằng lời giải thích của bạn về một ứng dụng khác truy cập repo git là chính xác. Có cùng một vấn đề trong một cuộc nổi loạn. Gitx đã chạy. Khi tôi bỏ nó, git hoạt động tốt.
Ai

2
@asahi: Bạn có thể muốn chấp nhận một câu trả lời? Điều này sẽ giúp độc giả trong tương lai.
MERose


3
@asahi: Bạn có thể đăng nội dung chỉnh sửa của mình (đó là giải pháp) dưới dạng câu trả lời và sau đó chấp nhận điều đó. (Mặc dù giải pháp chung hơn là 'khởi động lại máy' là một quá trình khác đang truy cập vào thư mục; khởi động lại chỉ cắt qua nút Gordian để cố gắng tìm ra cái nào và tại sao. :) Trong trường hợp của tôi, đó là IDE của tôi.) Dù sao, mọi người thường trả lời câu hỏi của chính họ khi họ tìm ra giải pháp của riêng họ, điều mà bạn đã làm.
Wilson F

Câu trả lời:


328

Đây có thể là một câu trả lời cũ nhưng tôi hy vọng điều này hữu ích hơn cho những người cần giải pháp tiếp theo.

Trên linux / unix / gitbash / cygwin, hãy thử

rm -f .git/index.lock

Trên Windows Command Prompt, hãy thử:

del .git\index.lock


1
Tôi thấy rằng đôi khi các tập tin khóa bị xóa tự động. Bất kỳ manh mối tại sao đôi khi tập tin này cần phải được xóa bằng tay?
Nrj

Tôi không có index.lock, phải làm sao? :(
Alex C

56
Cho rằng vấn đề trong câu hỏi là anh ta không thể xóa tệp, tại sao bạn nghĩ cố gắng xóa tệp nên là giải pháp?
thắp sáng

4
Đối với tôi việc đóng và mở SourceTree đã giải quyết vấn đề ... Tạm thời tôi cho rằng.
Andrew

1
@skyking trong câu hỏi ban đầu có một lỗi cho biết fatal: Unable to create 'project_path/.git/index.lock': File exists., nó nói "Tệp tồn tại" và xóa nó sẽ là giải pháp đơn giản. Tại sao tôi lại đề nghị xóa một tệp nếu nó thậm chí không có trong câu hỏi ban đầu?
Ryan S

40

Cho cửa sổ:

  • Từ bảng điều khiển powershell được mở với tư cách quản trị viên, hãy thử
> rm -Force ./.git/index.lock
  • Nếu điều đó không làm việc, bạn phải giết tất cả các quy trình 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
Tham số không thể được xử lý vì tên tham số 'f' không rõ ràng.
3pitt

cảm ơn, @MikePalmice, tôi đã cập nhật lên -Force. Có vẻ như họ đã thay đổi API
Andrei Epure

20

Trên nền tảng Windows chạy Visual Studio 2015 RC (v4.6.00057) kết hợp với SourceTree (v1.6.14.0) cũng sẽ gặp lỗi này.

Giải pháp: Giả sử bạn muốn sử dụng cây nguồn làm trình quản lý mã nguồn, chỉ cần vô hiệu hóa nhà cung cấp kiểm soát nguồn trong Visual Studio như thế này:

  1. Truy cập: Công cụ> Tùy chọn> Kiểm soát nguồn
  2. Chọn trình cắm kiểm soát nguồn hiện tại là: Không

Mặc dù VS của tôi không được phép truy cập vào các kho lưu trữ đó, nhưng dù sao đây cũng là vấn đề khi khởi động lại với SourceTree.
Kajetan Abt

Cảm ơn bạn, vấn đề vẫn còn đó với Bản cập nhật 3.
Elger Mensonides

Đóng Visual Studio cũng hoạt động (đã xóa tệp index.lock.)
misterbee

10
  1. kiểm tra xem git có còn chạy không (ps -ef | grep git)
  2. nếu không, hãy xóa tập tin bị khóa
  3. nếu có, giết quá trình git lúc đầu.

9

thử

rm -f ./.git/index.lock

nếu bạn không có quá trình git nào khác đang chạy, thì chỉ cần xóa tệp index.lock của dự án tương ứng.


Làm việc trên môi trường máy Mac của tôi.
Adam Hurwitz

6

Chỉ có vấn đề này ... Gitbox đã có lỗi. Vì vậy, có thể bạn đã chạy GUI gây ra sự cố.


Đó không phải là GUI nhưng tôi có một quy trình riêng được ghi vào thư mục dự án. Tôi không thể tìm ra nó và nó đang khiến tôi phát điên.
asahi

Có vẻ như GitX cũng thích gây ra vấn đề này.
Glutexo

6 năm sau, nó là nguyên tử đối với tôi
Sữa

6

Điều này xảy ra khi bạn hủy bỏ việc kéo từ gốc ở giữa.

Vì vậy, những gì bạn có thể làm là xóa thủ công tệp index.lock khỏi thư mục .git của bạn.

rm -f ./.git/index.lock

cd vào thư mục dự án của bạn và chạy lệnh này.


8
Cho rằng vấn đề trong câu hỏi là anh ta không thể xóa tệp, tại sao bạn nghĩ cố gắng xóa tệp nên là giải pháp?
thắp sáng

+1 @skyking. Xóa một tập tin là rõ ràng, vấn đề là không có tập tin để xóa và vấn đề vẫn còn.
Catsunami

6
  1. Đóng mọi cửa sổ có khả năng ảnh hưởng đến tệp .git / index.lock này
  2. Xóa tệp .git / index.lock.
  3. Mở trình soạn thảo dòng lệnh và cd đến vị trí tệp git của bạn.

(Nếu tệp được tạo, chỉ cần từ cd vào vị trí đó, thì vấn đề là trình soạn thảo của bạn. Đóng trình chỉnh sửa của bạn. Không sử dụng trình chỉnh sửa này một lần nữa cho tác vụ này. Mở một loại trình soạn thảo khác - shell power windows hoặc đơn giản là cmd. bạn có thể sử dụng lệnh git để tiếp tục)


5

Có lẽ (nó đã xảy ra với tôi), lệnh ls nói rằng nó không tồn tại bởi vì người dùng hiện tại không có quyền truy cập vào thư mục hoặc tệp đó.

Tháo khóa và đảm bảo bạn đang thực hiện git với đúng người dùng để tránh các vấn đề về quyền.

Nếu bạn đang ở trong hộp GNU / Linux với lệnh sudo :

sudo rm project_path / .git / index.lock


Trong Windows, bạn có thể kiểm tra xem thư mục có ở chế độ chỉ đọc bằng cách nhấp chuột phải-> Thuộc tính-> Thuộc tính.
Matt

Cho rằng vấn đề trong câu hỏi là tập tin không tồn tại, tại sao bạn nghĩ cố gắng xóa tập tin nên là giải pháp?
thắp sáng

@skyking Vấn đề về quyền hiển thị cùng một lỗi. Thật vậy, tôi đến câu hỏi này vì tiêu đề. Tôi đã viết câu trả lời của mình như một giải pháp khả thi và một số phiếu xác nhận rằng nó cũng xảy ra với người khác;)
caligari

@caligari Không chính xác. Vấn đề quyền cho phép một câu trả lời khác ls project_path/.git/index.lock.
thắp sáng

5

del .git\index.lock đã làm cho tôi.

Tôi đã phải đối mặt với vấn đề này trong khi kiểm tra một chi nhánh mới từ chi nhánh chính.

Thanh toán dễ dàng xảy ra sau khi xóa các index.locktập tin.


4

Đôi khi Git tạo một tệp khóa được liên kết với repo của bạn trong khi bạn đang thực hiện bất kỳ thay đổi nào hoặc có thể nhất là khi bạn đang sử dụng các mô-đun phụ. Thông báo lỗi sẽ hiển thị cho bạn đường dẫn của tệp khóa. Khắc phục: Chỉ cần truy cập thủ công vào đường dẫn trong thiết bị đầu cuối và xóa tệp khóa bằng $ rm index.lock

Nó sẽ giúp.


4

Tôi gặp vấn đề này với SourceTree khi chuyển nhánh bằng cách nhấp đúp vào nó. Vấn đề không phổ biến lắm và Atlassian biết về nó nhưng họ đã quyết định không sửa nó.

May mắn thay, có một giải pháp. Thay vì nhấp đúp vào nhánh bạn muốn chuyển đổi, chỉ cần nhấp chuột phải và chọn "Thanh toán [tên chi nhánh]". Nó sẽ thành công bây giờ.


cảm ơn, nhấp chuột phải> thanh toán hoạt động như một sự thay thế. thông báo lỗi khá sai lệch, đặc biệt là khi index.lock không tồn tại.
Ernest

4

Tôi đã đi qua cùng một kịch bản. Tôi thậm chí đã không thực hiện bất kỳ thay đổi trong mã địa phương của tôi. Tôi vừa chỉnh sửa một tập tin và hoàn nguyên nó. Tôi chỉ đơn giản là xóa các tập tin dưới đây trong thư mục .git ẩn. Nó đã làm việc!

project_path / .git / index.lock


3

Trừ khi bạn thực sự có ý định root để sở hữu repo của mình, điều này nghe có vẻ như bạn vô tình chạy lệnh Git với quyền root (thậm chí có thể là bản sao / init ban đầu). Nếu bạn muốn làm điều đó, thì bạn sẽ phải sống với việc chạy tất cả các lệnh Git trong repo với quyền root. Nếu bạn không, hãy chạy sudo chown your-user[:your-group] -R .gitđể sở hữu nó, và sau đó xem mọi thứ có hoạt động không.


Trong trường hợp của tôi, tôi đã làm rối chế độ của các tệp và thư mục bên trong .gitvà tôi đã sửa chúng: find .git -type f -exec chmod 644 {} \;find .git -type d -exec chmod 755 {} \;tôi cũng đã làm rối các chế độ khi di chuyển dự án git của mình từ máy tính này sang máy tính khác
user3405291

Trong trường hợp của tôi, tôi đã thêm quyền ghi vào các tệp .gitsudo chmod g+w .git -R
Beatriz Fonseca

2

Nhiều khách hàng git làm việc trên cùng một kho lưu trữ cục bộ cạnh tranh cho khóa đó. Mỗi khách hàng nên đợi cho đến khi khóa được phát hành bởi bên kia để trở thành một công dân tốt. Đối với chúng tôi, SourceTree hoặc MSVS dường như đang thực hiện một số bảo trì trong nền trong khi chúng tôi đang chạy các tập lệnh cam kết lớn.

Có lẽ chính 'git' nên hỗ trợ đối số '--retriesWhenLocked 5' để hỗ trợ thử lại.hoặc thậm chí mặc định này khi chạy thủ công.

Dưới đây là trình bao bọc PowerShell xung quanh git có tên "gitr" thử lại cho đến khi index.lock biến mất, sử dụng 5 lần thử mặc định, mỗi lần 3 giây. Nó không bao giờ loại bỏ index.lock, giả sử người dùng nên can thiệp. Nó được trích xuất từ ​​một tập lệnh cam kết lớn hơn. Nó chỉ có thử nghiệm tối thiểu với các đối số đơn giản.

  • Sao chép tập lệnh vào C: \ bin và thêm C: \ bin vào $ PATH.
  • Từ PS1> gitr - trợ giúp
  • Từ DOS%> powershell gitr - trợ giúp

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

Tôi cũng có câu hỏi này trong windows 10.

Khi tôi thử del ./.git/index.lock, nó nói với tôicannot remove 'index.lock': Device or resource busy

Cuối cùng tôi đã có lý do:

Máy tính có hai quá trình sử dụng git:

  • git bash
  • cmder

vì vậy tôi sử dụng cmder.exe để git commitnó sẽ xảy ra lỗi.

Vì vậy, giải pháp là sử dụng git bashhoặc Chấm dứt git bashsau đó sử dụng cmder.exe


1

Tôi đã có lỗi chính xác tương tự, nhưng vấn đề không phải là tập tin khóa. Thay vào đó, vấn đề là tôi đã sao chép nội dung của một repo git khác vào repo này, bao gồm cả thư mục vô hình .git. Vì vậy, SourceTree đã nhầm lẫn về việc tôi muốn tạo các tập tin repo nào (có sự không phù hợp giữa repo SourceTree nghĩ rằng tôi đang ở và một nội dung trong thư mục .git được nhúng của tôi nói rằng tôi nên tham gia).


1

Tôi gặp vấn đề này với TortoiseGit với Cygwin trên Windows. Tôi không thể xóa xóa ./.git/index.lock ngay cả với các đặc quyền quản trị, tôi đã thử cả Cygwin và dấu nhắc lệnh, nó nói rằng tệp đang được sử dụng bởi một quy trình khác.

Tôi thấy rằng tôi đã có 2 phiên bản TortoiseProc.exe đang chạy. Tôi đã giết một trong số chúng, và đóng tất cả các cửa sổ windows explorer của mình, và sau đó có thể xóa tệp. Tôi không biết nếu giết một thể hiện của TortoiseProc.exe là giải pháp hoặc đóng cửa sổ windows explorer.


1

Giải pháp cho tôi là xóa tệp .index và cho phép Git xây dựng lại tệp khác.


1

Tôi không có tệp inex.lock để xóa, nhưng điều làm việc với tôi là xóa kiểm tra Chỉ đọc từ cửa sổ Thuộc tính của hộp thoại Thuộc tính thư mục.


1

Tôi đã tạo một tệp index.lock trống, xóa nó bằng lệnh windows


1

Bắt đầu từ git 2.8.4 (tháng 6 năm 2016) , điều này sẽ không xảy ra nữa.

Xem vấn đề 755 cũng sẽ làm giảm bớt vấn đề ( cam kết 2db0641 ):

Đảm bảo rằng các tệp xử lý tạm thời không được kế thừa bởi các tiến trình con

Ngăn chặn các quá trình con kế thừa một tay cầm để index.lock.


1

Trong ứng dụng sourceTree của tôi, tôi không thể thực hiện cam kết hoặc chuyển sang bất kỳ cam kết / brach nào khác. Thời gian đó hiển thị lỗi như

gây tử vong: Không thể tạo ra blah blah blah ..

Tôi chỉ đơn giản giải quyết điều này bằng thư mục goto .git (trong dự án Explorer Dir). Và xóa Index ----- [loại tệp: tệp LOCK]. Bây giờ tôi lấy lại tất cả quyền truy cập trong sourceTree ..

vui lòng đảm bảo tệp khóa Index .. giả sử bạn không nhận được loại tệp, thay đổi cài đặt xem phim trong máy tính. Lưu ý: thư mục .git thường là loại thư mục ẩn.


1

Những gì đã làm cho tôi là:

git rebase --abort và khởi động lại rebase.

Như Andrew đã đề cập, tôi cũng đang sử dụng PHPStorm khi điều này xảy ra. Không phải đóng nó mặc dù.


1

Trước tiên, bạn phải điều hướng đến thư mục cụ thể của dự án của bạn .. Giống như nếu tên dự án của bạn là Firstproject, trước tiên hãy vào thư mục của dự án .. sau đó nhập cd .git sau đó sau khi điều hướng đến thư mục git loại del index.lock Sau xóa tệp index.lock..Bạn sẽ có thể cam kết và đẩy như trước


1

Trong trường hợp của tôi, đó là cửa sổ, không tắt hoàn toàn.

Windows đang ngủ đông, từ chối gắn kết

Rất có thể Windows thực sự đang ngủ đông. Windows sẽ tự động làm điều này khi bạn bảo nó tắt bình thường. Lợi ích là bạn có được thời gian khởi động rõ ràng nhanh hơn.

Để tắt Windows mà không cường điệu, hãy đưa ra thông báo sau tại dấu nhắc lệnh (trong Windows):

shutdown /s

Bạn cũng có thể muốn bao gồm /t 0cho tắt máy ngay lập tức.

Tôi đã tìm thấy một hướng dẫn thú vị để thiết lập trình khởi chạy cho việc này: Cách thực hiện Tắt máy hoàn toàn trong Windows 8 mà không cần vô hiệu hóa Hybrid Boot.

Cách tiếp cận đơn giản hơn để thực sự tắt Windows là 'khởi động lại' (thay vì 'tắt máy'), nhưng sau đó chặn quá trình khởi động và khởi động Linux thay vì để nó khởi động Windows.

tín dụng : quý tộc


1

Điều này cũng có thể xảy ra nếu bạn đang sử dụng máy khách git dòng lệnh thay thế, như hub .

Tôi đã sử dụng hub như một sự thay thế bí danh cho git trong một vài năm, nhưng gần đây đã viết một tập lệnh bash có một loạt các git hoạt động trong đó và bắt đầu gặp vấn đề về khóa chỉ mục này.

Tôi không thể tìm thấy bản sửa lỗi cho đến khi tôi nhớ rằng tôi đang chạy hub thay vì git. Tôi đã loại bỏ điều đó và vấn đề đã biến mất!


0

Bắt lỗi:

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.

Nhưng tôi không thể tìm thấy (cũng không xóa) tệp .git / index.lock.

Trong trường hợp của tôi, git-cola đã chạy!

Nó rõ ràng tạo ra .git / index.lock một lần trong một lần hoặc do rebase tôi đang thực hiện trên dòng lệnh và trong thời gian đó tôi đã nhận được lỗi đó - vì vậy git-cola rõ ràng "làm phiền" dòng lệnh của Git (hoặc một số hoạt động Git CLI).

Điều này được giải quyết bằng cách đóng git-cola trong dòng lệnh git rebase.


0

Đôi khi một ứng dụng khách Git khác có thể can thiệp khi có nhiều cài đặt.

I E. đảm bảo với Task Manager hay Get-Processrằng TGitCachetừ TortoiseGit không đang hoạt động ở chế độ nền.


0

Tôi đã có cùng một vấn đề gần đây. Nếu bạn sẽ kiểm tra toàn bộ thông báo lỗi, nó cũng nói rằng có một số quy trình đang sử dụng quy trình git ngăn bạn xóa index.lock. Bạn có thể mở IDE như Visual Studio hoặc phần mềm liên quan mà git được tích hợp vào. Đóng nó và thử lại stash tập tin của bạn. Hy vọng nó giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.