로컬 git 저장소의 파일 중 하나에 문제가 있습니다. 지점을 변경하려고하면 다음과 같이 표시됩니다.
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
그게 무슨 뜻이야?
로컬 git 저장소의 파일 중 하나에 문제가 있습니다. 지점을 변경하려고하면 다음과 같이 표시됩니다.
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
그게 무슨 뜻이야?
답변:
이것은 다른 프로그램이 파일을 사용하고 있음을 의미하므로 분기를 변경하려고 할 때 git이 작업 디렉토리로 또는 디렉토리에서 "이동"할 수 없습니다.
이클립스가 파일을 "사용"하는 Windows Vista에서 이런 일이 발생했습니다. 파일은 실제로 이클립스에서 열리지 않지만 이클립스에서 실행되는 프로세스에 의해 열렸을 수 있습니다.
이 경우 파일을 사용했을 가능성이있는 응용 프로그램에서 파일을 닫으십시오. 그래도 문제가 해결되지 않으면 파일을 열었던 응용 프로그램을 완전히 종료하십시오.
GitKraken
rebase와 같은 명령을 수행하면 이것을 사용할 수 있습니다
이 문제가 발생하여 다음 명령으로 해결했습니다 git gc
. 위 명령은 임시 파일과 불필요한 파일을 제거합니다. (가비지 수집기.)
git pull
git gc
gc는 자동으로 시작 되었으며 gc는 일부 .pack 및 .inx 파일에 액세스하려고 시도했습니다. 이것들은 git pull
명령 을 소유 한 "windows git"프로세스에 의해 유지되었습니다 . git gc
보다 수동으로 실행 git pull
하면 실제로 문제가 해결됩니다.
git gc
때 다시 같은 오류를 가지고 gc
진행했다
여기 에서이 솔루션은 나를 위해 일했습니다 :
이것은 Windows 고유의 답변이므로 귀하와 관련이 없음을 알고 있습니다 ... 향후 검색 자의 이익을 위해 포함하고 있습니다.
제 경우에는 높지 않은 명령 줄에서 Git을 실행했기 때문입니다. "관리자 권한으로 실행"이 해결되었습니다.
Ctrl+C
연결할 수없는 매우 긴 파일 목록을 종료하도록 입력 했습니다. gitbash, 내 IDE 및 GitHub Windows 응용 프로그램을 종료했습니다. 관리자 권한으로 실행 모드에서 gitbash를 다시 시작했습니다. 그리고 달렸다 git gc --aggressive
. 완료하는 데 시간이 걸렸지 만 오류없이 완료했습니다.
필자의 경우 파일이나 디렉토리를 만지는 프로세스가 없습니다. 운영 체제 제한 (Windows)으로 인해 경로가 매우 긴 경우에 발생할 수 있습니다. 아래 표시된대로 전역 git 구성에서 longpath 지원 플래그를 활성화하십시오.
git config --global core.longpaths true
또는 충돌하지 않는 경우 예 / 아니요 응답 플래그를 설정하십시오.
set GIT_ASK_YESNO=false
경로가 너무 길면 성공적인 해결책을 찾지 못했습니다.
GIT_ASK_YESNO
에 대한 정보를 찾을 수 없습니다. 그거 어디서 났어 ?
core.longpaths
추가로 : 리셋 --hard 자두 GC 나를 위해 일한 - 도구에서의 빌드하지 엉망에 가까운 안드로이드 스튜디오에하지만, 한
이것은 누군가에게 유용 할 수 있습니다. 위의 모든 방법으로 문제가 해결되지 않으면 다음 단계를 수행하십시오.
IDE (Intellij 및 기타에 적용되는지 확실하지 않은 Eclipse) 또는 git을 사용하는 다른 앱을 닫으십시오.
커맨드 라인에서 git을 열고 (내 경우에는 git bash가 있음) git gc
다른 사람들이 언급 한대로 실행하십시오 .
이것은 나를 위해 마술을했다.
내가 사용으로 gitkraken 및 프롬프트 명령을, 나는 같은 문제 다 퉜다. 그런 다음 실행 git gc
명령을 실행하면 문제가 해결되었습니다. 그래서 나는 행복하고 도움이 될만한 몇 가지 요점을 공유하고 싶습니다.
무엇 git gc
을 할 것인가?
git gc
git add의 이전 호출에서 생성되었을 수없는 도달 할 수없는 객체를 제거합니다.
실행할 때 git gc
합니까?
에서 문서 , 사용자는 좋은 디스크 공간 활용과 좋은 운영 성능을 유지하기 위해 각 저장소 내에서 정기적으로이 작업을 실행하는 것이 좋습니다.
자동 구성 가능하게하는 방법?
일부 git 명령은 git gc를 자동으로 실행할 수 있습니다. 자세한 내용은 아래 --auto 플래그를 참조하십시오. 당신이하고있는 일을 알고 원하는 것이 더 이상 고려하지 않고이 동작을 영구적으로 비활성화하는 것입니다.
git config --global gc.auto 0
폴더의 .tmp
파일 에이 문제가 있습니다 /.git/objects/pack
. 푸시 또는 풀 중에 실패한 것으로 생각되어 이러한 임시 파일을 제거하고 HEAD를 마지막 커밋으로 재설정했습니다. 이것이 조언되는지 확실하지 않지만 그것은 나를 위해 일했습니다. 또한 pack 폴더에 속하지 않은 파일 git count-objects -v
목록을 제공했습니다 .tmp
.
또는 Windows에서 y / n 메시지를 억제 git open cmd.exe
하고 다음을 실행하십시오.
SETX GIT_ASK_YESNO false
여기에서 본 : https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
에서 임시 객체 남은 식별하는 데 도움이 pack
폴더에 있습니다.
'git pull'을하는 동안 동일한 문제에 직면했습니다. 수동 청소 git 명령 'git gc'를 시도했는데 문제가 해결되었습니다.
위의 답변 중 어느 것도 효과가없는 것처럼 보인 후에는 달리기 git fetch -p
가 나를 위해 일했습니다.