git rebase :“오류 : 'file'통계를 할 수 없습니다 : 권한이 거부되었습니다.”
git을 사용하고 있으며 작은 커밋과 큰 커밋이 있습니다. 나는 git rebase
두 커밋을 밀기 전에 함께 스쿼시하는 것을 사용하기로 결정 했습니다. (나는 전에 이것을 한 적이 없다.)
그래서 나는했다 :
git rebase -i HEAD~2
이것은 나에게 편집자를 주었다. 거기서 나는 이전 커밋을 고르고 나중에 커밋을 선택했다. 내가 저장했을 때, 자식은 말했다 :
오류 : ' filename '을 통계 할 수 없습니다 : 권한이 거부되었습니다
나중에 커밋에 sha1을 적용 할 수 없습니다 ... 해당 커밋의 초기 텍스트 줄
지금:
- 내가 할 때 커밋이 나타나지 않습니다
git log
. git status
"현재 지점에 없습니다"라고 말합니다.- 하나의 파일은 수정 된 것으로 색인에 나열되고 두 개의 파일은 추적되지 않은 것으로 나열됩니다. 내 첫 번째 커밋에는 파일이 하나 뿐이고 두 번째 커밋에는 수십 가지가 있습니다.
어떻게 된 거예요!? 어떻게 고치나요?
Windows 에서이 오류 만 보았으며 의미하는 것은 패치를 적용하려고 할 때 git이 파일을 수정하지 못하도록 차단 한 것입니다.
Windows는 실제로 필요하지 않을 때 프로세스에 파일에 대한 독점적 액세스 권한을 부여하는 경향이 있습니다. 과거 바이러스 검사기는 의심의 소스 중 하나 였지만 이것이 결정적인 증거는 아닙니다.
아마도 가장 쉬운 방법은 다음에 일어나지 않기를 희망하고 중단하고 다시 시도하는 것입니다.
git rebase --abort
git apply
커밋 git이 실제로하기 전에 실제로 무엇을하려고했는지에 대한 지식과 사용을 시도 할 수 git rebase --continue
있지만 모든 정직에서 나는 이것을 권장하지 않습니다. 내가 시도한 것을 보았던 대부분의 시간은 우연히 무언가가 빠지거나 엉망이 될 가능성보다 낫습니다.
편집기, 탐색기 창, 명령 프롬프트 및 FTP 프로그램과 같이 폴더가 열려있는 모든 프로그램을 닫으십시오. 이것은 항상 Windows의 문제를 해결합니다.
IDE (VISUAL STUDIO / ATOM 등)를 닫으십시오. 작동 할 수도 있습니다
내 컴퓨터에서 이것을 볼 때 단지 "일부 프로세스가 파일을 연"것보다 나쁩니다. 파일의 실제 소유권은 I (관리자 권한으로 실행)가 재부팅 후에 만 파일에 액세스 할 수있는 지점까지 연결됩니다.
내가 알 수있는 가장 가까운 것은 IIS가 문제의 일부입니다. 많은 파일을 수정 해야하는 두 가지 주요 지점을 전환하면 git은 IIS가 파일이나 디렉토리를 사용하려고 시도하는 동안 파일이나 디렉토리 (일반적으로 DLL)를 삭제합니다. 이 시점에서 IIS 프로세스는 디스크의 파일을 잠겨 있고 아무도 소유하지 않은 것으로 버전을 자동으로 덮어 씁니다.
이 시점에서 IIS를 중지해도 작동하지 않습니다. 내가 찾은 최선의 방법은 다시 부팅하는 것입니다. 앞으로 주요 지점을 변경하기 전에 IIS를 중지해야합니다.
나는 그것이 실제로 질문에 대답하지는 않지만 다른 사람들에게 도움이 될 수 있음을 알고 있습니다.
방금이 답변 스레드를 우연히 발견했습니다-이 오류는 가짜 오류입니다. # error : stat 'reddit / app / views / links'stat cannot cannot : Permission denied
병합하려고 할 때 이것이 전부입니다. 나는 몇 가지 답변을 읽은 다음 깨달았습니다 .Atom이 될 코드 편집기를 닫는 것만으로도 충분합니다.
편집기를 닫으면 "git merge"를 다시 실행하고 붐을 일으켰습니다.
무의미한 오류 : (
Windows에서는 해당 파일을 차단하는 TortoiseGIT 프로세스 일 수 있습니다. 작업 관리자를 열고 TGitCache.exe 프로세스를 종료하십시오 .
이것은 때때로 Windows에서 나에게 발생합니다.
오류 : 'filename'통계를 할 수 없습니다 : 권한이 거부되었습니다
대부분의 경우 비트 bash 인스턴스가 여러 개 열려 있고 git bash 인스턴스 중 하나가 내가 가져 오는 원격 브랜치에 존재하지 않는 디렉토리에 있습니다.
하나의 git bash 인스턴스를 모두 닫으면 문제가 해결됩니다.
사용하는 IDE (사용하는 경우)도 방해가되었을 수 있습니다. 그것이 QtCreator를 사용할 때 나에게 일어난 일입니다.
SublimeText를 사용 중이고 프로그램 구매를 요청하는 팝업 창이 닫히지 않은 경우에도 발생할 수 있습니다.
Win 10에서 SourceTree를 사용하여 Atom 편집기를 닫아 문제를 해결했습니다.
오류 재현 :
- 지점 B에서 Atom을 사용하여 md 파일을 작성하고 저장하고 커미트하십시오.
- 지점 A로 전환하고 서버에서 새 커밋을 가져옵니다.
- 다시 전환하십시오. Opps, "error : stat 'file': Permission denied"라고 표시되어 있습니다.
Prepros 또는 Codekit과 같이 프로젝트를 시청하는 사전 처리 소프트웨어 / 응용 프로그램이있을 때 종종 발생합니다. 또한 Atom 및 Sublime (및 메모장 ++)도 프로젝트의 파일을 현재 편집중인 경우이 문제가 발생할 수 있습니다.
이 문제를 해결하는 가장 쉬운 방법은 프로젝트 파일이 열려있는 항목을 닫고 분기를 병합 한 다음 다시 열어서 새로 고치는 것입니다. 또한 프로그램이 더 이상 발생한 변경 사항을 인식하지 못하여 프로젝트를 수동으로 새로 고치도록하는 문제를 피할 수 있습니다.
웹팩을 실행중인 경우 종료하십시오. IDE도 종료하십시오. 그 일을 한 후에 잘 작동해야합니다.
vscode를 사용하는 경우 터미널을 종료하고 새 터미널을여십시오. 다른 터미널도
나는 비슷한 문제가 있었다. 그러나 해결하는 것은 매우 간단했습니다. Windows 컴퓨터에서 파일 탐색기에 한 지점에는 존재하지만 체크 아웃 한 다른 폴더에는 폴더가 열려 있지 않았습니다. 파일 탐색기를 닫으면 문제가 해결되었습니다.
나는 방금 Win 7에서 이것을 가지고있다.
$ git stash pop error : 'parentFolder / subfolder'를 통계 할 수 없습니다 : 권한 거부 오류 : 'parentFolder / subfolder'를 통계하지 못했습니다 : 권한이 거부되었습니다
진단:
1> 나는 하위 폴더로 갔는데 거기에 있으며 삭제할 수 없습니다!
2> "프로세스 탐색기"사용-> 찾기-> 핸들 및 DLL 찾기-> "하위 폴더"이름을 입력하고 검색하십시오.
결과 : XMLSpy가 xml 중 하나를 열고 XML Spy를 닫은 후 다시 팝업을 시도하면 작동합니다.
IntelliJ 통합 터미널 내부에 rebasing하면서 Windows에서 나에게 일어났다 . Git bash 클라이언트 인스턴스가 병렬로 실행되고 있음을 알았습니다 .
Git bash를 닫으면 문제가 해결되었습니다.
이 문제가 발생하면 편집자 Intellij가 발생했습니다. 내부 버전 제어의 일부로 모든 숨겨진 git 파일을 통과하고 잠갔습니다. (다양한 이유로 Intellij와 함께 제공되는 git 플러그인을 사용하지 않았습니다 ...)
그래서 관리자로 일반 dos 창을 열고 디렉토리로 변경하고 실행했습니다.
attrib -R /S
파일에 대한 잠금이 제거되고 그 후에 모든 것이 작동했으며 GitHub Windows 클라이언트를 사용하여 변경 사항을 동기화 할 수있었습니다.
위의 "Close Visual Studio"답변에 동의합니다.
그러나 추가 단계 나는 폐쇄 Visual Studio를 수동으로하는 것이 었습니다 거라고 후에도해야 할 일을했을 킬 (kill) "으로 Devenv.exe" 작업 탐색기에서 비주얼 스튜디오 과정을. 내가 이것을 한 후에 gitbash에서 다시 실행할 수있었습니다.
자식 풀
"stat filename 파일 이름 "오류가 사라졌습니다. 아마도 닫은 후에도 프로세스를 더 오랫동안 열어 놓은 Visual Studio 확장 때문일 수 있습니다.
방금이 문제가있었습니다. 문제는-파일을 열었을 때 rebase 후 제거 / 교체 (더 이상이 파일이없는 지점이 있음)하면 git 시스템이 손상됩니다. 그래서 열린 모든 파일을 닫은 다음 다른 지점에서 체크 아웃하려고했습니다.
Git Bash 버전 2.9.0.windows1을 실행하는 Windows 10 64 비트와 동일한 문제 Atom을 내 편집기로 사용합니다.
이것은 나를 위해 일했다 : 나는 Git 소프트웨어 폴더 (나를 위해 C : \ Program Files \ Git이었다)를 Windows Defender 제외에 추가했다.
제외가 추가 된 후 git checkout 'file'
정상적으로 작동했습니다.
이 오류는 또한 이전 git 작업으로 인해 파일이 여전히 "잠겨져"있기 때문에 발생할 수 있습니다. Windows 파일 시스템 계층의 작동 방식과 관련이 있습니다. 한 번 이것에 대한 좋은 설명을 읽었지만 어디에 있는지 기억할 수 없습니다.
그러나이 경우 기본적으로 경쟁 조건이므로 중단 된 rebase 프로세스를 계속 하면 됩니다 . 불행히도 이것은 항상 나에게 발생하므로, 나는 rebases를 계속 유지하기 위해이 작은 위험한 도우미를 썼습니다 .
#!/bin/sh
set -e
git checkout .
git clean -df
git rebase --continue
확실 git rebase --edit-todo
하게 확인하려면 적용 할 다음 커밋이 실제로 적용되지 않은 커밋인지 확인하는 데 사용할 수 있습니다. 사용 git clean -dn
당신이 중요한 파일을 삭제하지 마십시오 만들 수 있습니다.
Windows에서 Photoshop을 사용할 때 나에게 일어난 일 : 이미지를 저장 한 다음 지점으로 전환하면 (이미지가 열린 상태로 Photoshop을 떠남) git 오류가 발생했습니다. 포토샵에서 이미지를 닫고 다시 시도하십시오
당신이있는 경우 융합 병합 도구 가까운 그 열기를. 파일 덮어 쓰기를 차단합니다.
저장소와 관련된 w3wp.exe 프로세스를 종료하면이 문제가 해결되었습니다.
다른 모든 답변에서 말했듯이 디렉토리를 잠글 수있는 모든 앱을 닫는 대신 대체 솔루션은 모든 것을 닫지 않고 파일 / 디렉토리의 잠금을 해제하는 유틸리티를 사용하는 것입니다. (Visual Studio를 다시 시작해야하는 것이 싫습니다)
LockHunter는 내가 사용하는 것입니다 : https://lockhunter.com/ 다른 사람들도있을 수 있지만, 이것은 나를 위해 훌륭하게 작동했습니다.
프로그램 파일에서 sh.exe를 마우스 오른쪽 단추로 클릭하고 보안 탭에서 "관리자 권한으로 실행"을 설정하여 권한 문제를 해결했습니다.
VS1013이 8.1을 타겟팅하는 지점에 있고 8.0 지점을 체크 아웃하려고 할 때이 오류가 발생했습니다. VS로 다시 탭하고 UpdateAll에 허용해야했습니다. 그런 다음 8.0 분기를 오류없이 체크 아웃 할 수 있습니다.
같은 오류가 발생했을 때 Git Shell을 사용하는 Windows 컴퓨터에도있었습니다.
그러나 당시에는 여러 개의 Git 터미널이 열려있었습니다.
첫 번째 터미널은 위에 게시 한 오류를 수신했고 다른 터미널은 이전에 grunt serve
yeoman (아래 링크)에서 터미널 명령을 실행했습니다 . 두 번째 터미널은 로컬 서버 인스턴스를 호스팅하기 위해 열려 있어야합니다.
진행중인 프로세스를 실행하는 모든 터미널 창을 종료하면 오류가 사라질 수 있습니다.
적어도 그것은 나를 위해 일한 것입니다. 두 번째 터미널 창을 종료 한 후 다른 분기를 쉽게 체크 아웃하고 파일을 조작 할 수 있습니다.
그런트 서브 커맨드-Yeoman.I / O
http://yeoman.io/learning/
방금이 문제에 부딪 쳤습니다. 여기에 대한 답변 중 하나가 나를 위해 이것을 해결하기 위해 발생했습니다.
결국 마스터 브랜치로 다시 전환했을 때 존재하지 않는 것처럼 보이는 브랜치에 추가 된 너겟 패키지가되었습니다. 병합을 한 후에 newtonsoft ... xml을 통계 할 수 없습니다. 문제의 파일로 이동하여 열었지만 Windows에서 파일을 찾을 수 없다는 오류가 발생했습니다.
이 문제를 해결하는 방법은 파일을 마우스 오른쪽 버튼으로 클릭하고 (작동했지만 창을 찾을 수 없기 때문에 파일을 열 수 없습니까 ???) 다시 병합하려고하면 문제가 해결되었습니다.
아주 이상한.
이것이 나중에 누군가를 돕기를 바랍니다.
프로젝트 디렉토리에 액세스하는 텍스트 편집기를 종료 한 다음 마스터 브랜치에 병합하려고 시도했습니다.
참고 URL : https://stackoverflow.com/questions/5970879/git-rebase-error-cannot-stat-file-permission-denied
'Programing' 카테고리의 다른 글
내 레지스트리없이 개인 NPM 모듈을 설치하는 방법은 무엇입니까? (0) | 2020.03.11 |
---|---|
노드에서 사용자의 IP 주소를 확인하는 방법 (0) | 2020.03.11 |
활동을 종료하려면 뒤로 단추를 두 번 클릭하십시오. (0) | 2020.03.11 |
iPhone Simulator가 갑자기 매우 느리게 실행되기 시작했습니다. (0) | 2020.03.11 |
이메일 주소를 어떻게 확인해야합니까? (0) | 2020.03.11 |