git pull을 시도하고 있는데 다음과 같은 오류가 발생합니다.
'lib / xxx.jar'파일 연결 해제에 실패했습니다. 다시 시도해야합니까? (y / n)
y 또는 n을 선택하더라도 당기거나 밀 수있는 상태가되지 않습니다.
chmod
및 / 또는 chown
고 말했다 파일을.
git pull을 시도하고 있는데 다음과 같은 오류가 발생합니다.
'lib / xxx.jar'파일 연결 해제에 실패했습니다. 다시 시도해야합니까? (y / n)
y 또는 n을 선택하더라도 당기거나 밀 수있는 상태가되지 않습니다.
chmod
및 / 또는 chown
고 말했다 파일을.
답변:
그것은 일반적으로 프로세스가 여전히 특정 파일을 사용하고 있음을 의미합니다 (여전히 핸들이 있습니다)
(Windows에서는 ProcessExplorer
해당 프로세스를 추적하는 데 능숙합니다)
다른 프로그램을 닫고 다시 시도하십시오 git pull
.
GIT_ASK_YESNO
변수에 대한 대안이 있습니다 .
2019 년 1 월 업데이트 :
Git 2.21 (2019 년 1 분기)에서는 " git gc
"및 " git repack
"가 필요없는 것으로 확인 된 열린 팩 파일을 닫지 않았으므로 열린 파일을 제거 할 수없는 플랫폼에서는 작동하지 않았기 때문에 훨씬 더 수정되어야 합니다.
이것은 수정되었습니다.
Johannes Schindelin ( )의 commit 5bdece0 (2018 년 12 월 15 일)을 참조하십시오 . ( Junio C Hamano 에 의해 병합 -- 커밋 5104f8f , 2019 년 1 월 18 일)dscho
gitster
gc
/repack
: 필요할 때 릴리즈 팩Windows에서 프로세스가 보유한 핸들이 여전히 있으면 파일을 제거하거나 이름을 바꿀 수 없습니다.
이를 해결하기 위해close_all_packs()
함수를 소개했습니다 .더 이상 필요없는 팩을 제거하려는
git gc
경우에 대비 하여 팩이 출시되기 직전에 릴리스되었습니다gc
.그러나이 개발자
gc
는--aggressive
옵션을 통해 모든 팩을 통합 할 때와 같이 팩을 버려야한다는 점을 잊었습니다 .마찬가지로
git repack -d
더 이상 사용되지 않는 팩을 삭제하려고하므로 모든 팩 핸들도 닫아야합니다.
2016 년 1 월 업데이트
Git 2.8 (2016 년 3 월)에서 수정되어야합니다 (아래 Git 2.19, 2018 년 3 분기 참조).
참조 d562102 커밋 , dcacb1b 커밋 , df617b5 커밋 , 0898c96 커밋 에 의해 (2016년 1월 13일) 요하네스 Schindelin을 ( dscho
) .
(가 합병 - Junio C 하마노 gitster
- 에 3c80940 커밋 2016 26 일월)
fetch
: 가비지 수집 전 릴리스 팩 파일자동 gc'ing하기 전에 팩 파일을 다시 포장하고 가비지 수집해야 할 경우를 대비하여 팩 파일이 릴리스되었는지 확인해야합니다.
gc --auto
종료하기 전에 " " 를 실행하는 많은 코드 경로는 유지 된 팩 파일을 매핑하고 파일 디스크립터를 열어 두었습니다. 열려있는 파일을 제거 할 수없는 시스템에는 적합하지 않았습니다.
이제 팩을 닫고 닫습니다.
git-for-widows
문제 500을 해결 합니다.
새로운 접근 방식을 검증하는 데 사용 된 테스트를 살펴보면 Git 2.8이 아직 나오지 않았기 때문에 가능한 해결 방법은 인위적으로 올리는 것 gc.autoPackLimit
입니다.
git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value
git 2.8.4 (2016 년 6 월) 에는 문제 755 를 언급 하여 문제를 완화해야합니다 ( commit 2db0641 ).
자식 프로세스가 임시 파일 핸들을 상속받지 않도록하십시오
사실, git-for-windows
문제 500 위에서 언급 한 정말 힘내 2.19, Q3 2018로 고정
"참조 - 파일의 링크 해제 힘내 .idx
및 .pack
(유일한 프로세스는이 파일에 대한 핸들을 소유 실패 git.exe
) "
이것은 Windows 고유의 답변이므로 귀하와 관련이 없음을 알고 있습니다 ... 향후 검색 자의 이익을 위해 포함하고 있습니다.
제 경우에는 높지 않은 명령 줄에서 Git을 실행했기 때문입니다. "관리자 권한으로 실행"이 해결되었습니다.
일부 파일이 잠겨있을 수 있으므로 Apache 또는 다른 웹 서버를 다시 시작하십시오.
메시지가 루프에 갇혀 있고 회신하여 지울 수있는 Windows XP 에서이 문제가 발생했습니다.
Git-GUI를 닫으면 갇힌 루프 발생이 해결되었습니다. (bash 쉘에서 git merge -i를 실행 중이었습니다.)
내 저장소의 파일 수가 많기 때문에 다른 일이 발생했을 수 있습니다. 주로 .cod 파일에서 발생했으며 나중에 버전 제어에서 제외합니다. (처음으로 추적 할 이유가 있습니다.) 원인은 Git이 파일 핸들을 사용하는 속도와 관련이 있다고 생각합니다.
이전의 두 포스터가 Windows를 언급했지만 다른 운영 체제에 문제가 있다고 말한 사람이 없기 때문에 대답을 통해 지울 수있는 문제가 Windows와 관련이 있는지 궁금합니다.
관리 모드에서 명령 행 편집기를 실행하고 명령을 실행하십시오. 도움을주고 문제를 해결합니다. :)