힘내-치명적 : '/path/my_project/.git/index.lock'을 만들 수 없습니다 : 파일이 존재합니다


805

프로젝트 트리를 git repo로 옮기려고 할 때 여전히이 오류 메시지가 나타납니다.

이 프로젝트로 내 디렉토리의 권한을 확인했으며 777에 my_project설정되어 있습니다.

자식 초기화

그리고 내가 시도하면

git add.

또는

git commit -m "첫 번째 업로드"

그래서 오류가 발생합니다

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
이 문제는 다른 터미널에서 su로 로그인하여 처음으로 모든 것이
정상으로


3
bro 나는 같은 문제가 있었다, "git add. 또는 git commit -m"first upload ""대신 "sudo git add. 또는 git commit -m"first upload ""
mehdi zahrane

나는 당 .git 파일에 대한 사용 권한을 변경하여 고정 가지고 stackoverflow.com/questions/14127255/... Mahshid Zeinaly에서 대답을 참조하십시오
vikramvi

답변:


1738

시험

rm -f ./.git/index.lock

저장소 디렉토리에 있습니다. 오류 메시지는 일반적으로 원인이 무엇인지에 대해 명시 적이므로 다른 git 프로세스가 실행 중이 아닌 경우 (일반적인 경우) 해당 파일을 삭제하십시오.


7
자동으로 발생하지 않습니다. git push변경 사항을 웹 서버에 적용 하려면 명령을 실행해야 합니다. 작동 방식에 대한 자세한 내용은 다음과 같습니다. gitready.com/beginner/2009/01/21/pushing-and-pulling.html
Raphael R.

9
똑같은 문제가 있지만 .git / index.lock 파일이 존재하지 않기 때문에이 방법으로 해결할 수 없습니다 : touch .get/index.lockreturnstouch: .get/index.lock: No such file or directory
emersonthis

24
에머슨, 존재하지 않는 .git 대신 .get을 찾고있는 것 같습니다.
Apie

3
권한 거부는 Git을 사용하는 사용자에게 파일에 대한 읽기 / 쓰기 권한을 부여해야 함을 의미합니다. (- Windows에서> 보안 탭 * nix에서 스크립트 또는 등록 정보) chmod를 명령을 확인
스테인 드 위트

9
오류에 "Permission Denied"가 표시되면 다른 곳에서 파일을 복사했을 수 있으며 .git 디렉토리에 대한 권한이 없습니다. 사용 ls -l후, 사용 권한을 참조 사용 sudo chown -R username ./*sudo chgrp -R username ./*프로젝트의 모든 파일에 자체에 변화의 사용자 및 그룹에.
chech

158

Windows의 경우 repo 디렉토리의 명령 프롬프트에서이를 수행하십시오.

cd .git
del index.lock

업데이트 : 분기를 전환하려고하기 전에 작업중 인 파일을 닫은 후 잠시 기다리면이 절차를 수행 할 필요가 없다는 것을 알았습니다. 때때로이 문제는 느린 파일 시스템을 사용하는 자식으로 인해 발생합니다. 좀 더 지식이 풍부한 다른 개발자가 이것이 맞다고 생각되면 차임 할 수 있습니다.


3
이상하게도 파일에 대한 오류가 발생하지만 cmd.exe에서 파일을 삭제하려고하면 파일을 찾을 수 없습니다.라는 메시지가 나타납니다. 절대 및 상대 경로와 동일한 결과. 그러나 Git Bash에서는 (와 함께 rm -f index.lock) 작동합니다.
Juha Untinen

필자의 경우 Sourcetree를 몇 번 다시 시작한 후 "Fetch"를 실행하여 작업했습니다.
maxivis

32

Xcode를 종료하십시오-git 클라이언트이므로 명령 줄에서 git 문제를 피하려면 Xcode를 종료해야합니다.


4
좋은! Xcode와 다른 Git 클라이언트는 범인 일 수 있습니다. 필자의 경우 gitX도 닫았습니다.
NSTJ

오늘 아침에 잠금 파일을 10 번 정도 삭제 한 후 마침내이 답변을 발견했습니다. xcode가 어떻게 열리는 지 모르지만 내 워크 플로우를 휴지통에 버렸습니다. 팁 고마워!
Cloudkiller

24

나는 같은 문제를 겪고 있었다. 나는 시도했다

rm -f ./.git/index.lock 

콘솔에서 오류 메시지가 표시되었습니다. 그런 다음 시도했습니다

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

그리고 그것은 효과가 있었다.

행운을 빕니다! 이 슈퍼 작동합니다


내 경우에는 .git 폴더가 표시되지 않습니다. 숨겨진 디렉토리에 관한 한 ./ 및 ../ 만 볼 수 있습니다.

어떤 컴퓨터를 사용하십니까?
Olivia Steger

18

내 .git 디렉토리에는 index.lock 파일이 없습니다. 그래서 Git Bash 쉘을 사용하여 ...

cd .git
touch index.lock
rm index.lock

터치 명령으로 파일이 생성되었고 문제가 해결되었습니다.


이것이 왜 다운 보트입니까? OP와 비슷한 오류 메시지가 표시되었습니다. 이것은 나를 고쳤으며 다른 사람들을 도울 수 있습니다.
존 리버모어

1
나는 이것의 약간의 변형을 경험했다 : (1) 나는 오류 메시지를 경험하고 다른 '수정'을 실험했다; (2) 나는 index.lock존재하지 않는 것을 발견했다 . (3) 위의 touch명령을 사용했습니다 . (4) 내 자식 클라이언트가 정상적으로 작동을 멈췄습니다 (최상의 크롤링 속도가 느려졌습니다). (5) 삭제했습니다 index.lock. (6) 저장소가 다시 정상적으로 작동하기 시작했습니다.
clarpaul

확실히 downvoted해서는 안되며 내 문제를 해결했습니다. index.lock 파일이 없었지만 일단 파일을 만든 다음 제거하면 커밋이 작동했습니다.
Bynho

touch index.lockJohn이 * NIX에 있음을 암시하지만 Windows 10 index.lock에서 텍스트 편집기를 사용하여 파일을 작성하고 즉시 삭제하고 이익을 얻는 것과 동일하게 수행하면 문제가 사라졌습니다.
ruffin

1
@Spark 업데이트 ...
John Livermore

13

실수로 root사용자를 사용하여 저장소를 작성 했습니까 ?

git 저장소를 root사용자 로 만들었습니다 .

git 저장소를 삭제하고없이 다시 만들었고 sudo작동합니다.


1
그렇습니다. 감사합니다
Natassia Tavares

9

나도이 문제가 있으며 실제로 권한 문제를 발견했습니다. 그래서 나는 이것을한다 :

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

그런 다음 실수는 훌륭하고, 가아는 성공입니다.

그런 다음 gp를 사용하면 거의 동일한 오류가 발생합니다.

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

훌륭해,이게 뭐니? "$ {USER :-$ (id -un)}"
Nick

7

Mac OS X의 경우 repo 디렉토리의 명령 프롬프트에서 다음을 수행하십시오.

cd .git
rm index.lock

1
그러한 파일이나 디렉토리가 없습니다
Channox

5

#intelliJIDE 중 하나를 사용 중이고이 메시지를받는 경우 (을 사용하고 있음 #webtorm) 프로젝트 폴더 중 하나를 숨기면 (설정 내부)이 문제가 발생할 수 있으며 이로 인해 GIT병합 되지 않을 수 있습니다 .


5

나를 위해 일한 해결책은 실행중인 git 프로세스가 편집기에 의해 시작 되었기 때문에 숭고한 텍스트를 닫는 것이 었습니다.


최근에 Sublime Text 플러그인 GitSavvy를 설치했으며 그 이후에만이 오류가 발생했습니다. 힌트를 주셔서 감사합니다, @snorkelzebra
Kitze

5

시도한 후 :

rm -f ./.git/index.lock

당신은 얻는다 :

rm : 'index.lock'을 링크 해제 할 수 없습니다 : 권한이 거부되었습니다

Git을 사용하는 모든 소프트웨어를 닫으십시오. 소스 트리와 Visual Studio를 열어 두 명령을 모두 닫은 후 작동했습니다.


5

Windows에서는 작업 관리자의 모든 Git Windows (32bit) 프로세스에 대해 작업 종료 후 잠금 파일을 삭제할 수만있었습니다.

솔루션 (Win 10)

1. 작업 관리자에서 모든 Git Windows (32bit) 프로세스에 대한 작업 종료

2. .git / index.lock 파일을 삭제 하십시오


4

내 경우에는 해결책은 5 분을 기다리는 것입니다. 분명히 내 이전 작업은 여전히 ​​실행 중이지만 방금 알지 못했습니다. 나는 창문에서 거북이 자식을 사용하고있었습니다.



4

나는 파일을 제거하는 것보다 더 나은 해결책이 있다고 생각합니다.

git gc

3

문제가 .git/index.lock있으므로 아래 명령을 사용하여 삭제하십시오.

명령:

sudo rm -rf .git / index.lock


3

여러 방법으로 여러 번 시도했지만이 방법이 효과적이었습니다 (PyCharm의 터미널을 사용했습니다).

$ cd .git/

$ rm -f index.lock

그런 다음 빈 git repo를 만들려고 다시 시도했습니다.

$ git init

$ git add .

$ git commit -m "commit msg"

3

하위 모듈 인 경우 저장소 디렉토리에서 대신 시도하십시오.

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

하위 모듈 이름을 하위 모듈 이름으로 변경하십시오.


2

이 문제의 해결 방법은 디렉토리에있는 3 개의 xcode / project 파일을 복사 한 다음 새 디렉토리를 작성하고 (다른 곳) 3 개의 파일 / 디렉토리를 붙여 넣는 것입니다.


2

또한 우리는 자식 프로세스를 죽일 수 있습니다. git 용 GUI 응용 프로그램을 통해 동일한 문제가 발생하여 문제가 발생하여 git이 일부 작동합니다. 죽이는 과정은 git과 작동하는 응용 프로그램을 정지시키고 다시 시작하면 모든 것이 정상입니다.


2

어떤 이유로 든 클라우드 서비스 (드롭 박스, 드라이브, 원 드라이브 등)에 의해 동기화되는 폴더에서 리베이스를 수행하는 경우 리베이스 동안 권한을 방해하므로 동기화를 일시 중지하거나 해제해야합니다. .


2

나를 위해 그것은

rm -r .git-credentials.lock 

2

디렉토리 권한을 변경하여 권한과 관련 될 수 있음을 알았습니다. 필자의 경우 원치 않는 (_www) 사용자를 제거한 다음 모든 내용을 변경하여 모든 사람에게 읽기 / 쓰기 권한을 적용했습니다. 이것은 Mac에 있습니다

Mac의 디렉토리 권한


2

git에 제공된 경로를 사용하여 탐색 한 다음 수동으로 삭제하면 모든 제거 명령이 작동하지 않았습니다.


2

이를 위해 Atom platformio-atom-ide-terminal 플러그인을 사용하지 마십시오. 배포판의 터미널을 직접 사용하십시오.

커밋을 rebasing / squishing하는 동안이 오류가 계속 발생했으며 여러 번 전에 수행했기 때문에 이유를 알지 못했습니다.

몇 번이나 삭제했는지는 중요하지 않았습니다. index.lock파일이 실패 할 때마다 파일을 .

ATOM EDITOR 터미널 플러그인을 사용하고 있었기 때문 입니다. 우분투와 함께 제공되는 터미널을 사용하면 매력처럼 작동했습니다.


2

간단히 D : /project/androidgc/.git/이 디렉토리로 이동하여 index.lock을 삭제하십시오.


1

누군가 git svn을 사용하는 경우 동일한 문제가 있었지만 파일이 없기 때문에 파일을 제거 할 수 없었습니다!. 권한을 확인하고 파일을 터치하고 삭제 한 후 다른 것을 기억하지 못합니다.

  • 마스터 브랜치를 체크 아웃하십시오.
  • 자식 svn rebase (마스터)
  • 당신이 일하고 있던 지점을 체크 아웃
  • 자식 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 폴더의 압축을 풀거나 복사 하지 마십시오 . Git은 수퍼 유저 권한을 사용하여 .git 폴더에 액세스 할 수 없습니다.

0

리포지토리의 루트 폴더 (예 : .git가있는 디렉토리)에 해당하는 디렉토리의 하위 디렉토리에있을 때이 문제가 발생했습니다. 루트 디렉토리로 이동하면 문제가 해결되었습니다. foo.ext 대신 path / to / folder / foo.ext로 이동해야하므로 모든 파일 참조를 조금 더 불편하게 만드는 대신

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.