gitrebase: "error: cannot stat 'file': 권한이 거부되었습니다."
저는 깃을 사용하고 있고, 작은 약속을 한 후 큰 약속을 했습니다.사용하기로 결정했습니다.git rebase
두 커밋을 푸시하기 전에 함께 스쿼시하는 것. (나는 이것을 해본 적이 없습니다.)
그래서 저는 했습니다:
git rebase -i HEAD~2
이것은 저에게 편집자를 주었고, 저는 이전의 커밋을 선택하고 나중의 커밋을 분쇄하기로 선택했습니다.내가 저장했을 때, git은 이렇게 말했습니다.
오류: 'filename'을(를) stat할 수 없습니다.권한 거부
나중에 커밋하기 위해 sha1을 적용할 수 없습니다...해당 커밋에 대한 텍스트의 첫 줄
이제:
- 가 행할때두커모두표시않음되지밋실않▁appears▁i를 할 때 두 커밋 모두 .
git log
. git status
"현재 어떤 지점에도 없습니다."- 하나의 파일은 수정된 것으로 인덱스에 나열되고 두 개의 파일은 추적되지 않은 것으로 나열됩니다.첫 번째 커밋에는 파일이 하나만 있었고(제 생각에는) 두 번째 커밋에는 상당한 양의 파일이 있었습니다.
무슨 일이 있었어요!?어떻게 고치죠?
편집기, 탐색기 창, 명령 프롬프트 및 FTP 프로그램과 같이 폴더가 열려 있는 모든 프로그램을 닫으십시오.이렇게 하면 Windows에서 항상 문제가 해결됩니다.
IDE(VISAL STUDIO/ATOM 등)를 닫기만 하면 됩니다.작동할 것 같다.
Windows(윈도우)에서만 이 오류를 본 적이 있는데, 이 오류의 의미는 패치를 적용하려고 할 때 차단된 무언가가 파일을 수정하지 못한다는 것입니다.
Windows(윈도우)에서는 파일에 대한 프로세스의 독점적인 액세스 권한을 부여하는 경향이 있습니다. 과거에는 바이러스 검사기가 의심의 대상이었지만 이를 최종적으로 입증한 적은 없습니다.
아마도 가장 쉽게 할 수 있는 일은 다음에 그런 일이 일어나지 않기를 바라며 중단하고 다시 시도하는 것일 것입니다.
git rebase --abort
다을사용수있다니습할음을 볼 수 .git apply
그리고 그것이 실제로 하기 전에 무엇을 하려고 했는지에 대한 지식.git rebase --continue
솔직히 이건 권하고 싶지 않아요제가 이것을 시도하는 것을 본 대부분의 경우 실수로 무언가를 놓치거나 엉망으로 만들 가능성보다 더 나은 가능성이 있었습니다.
컴퓨터에서 이것을 볼 때 "일부 프로세스에서 파일이 열려 있습니다"보다 더 심각합니다.파일의 실제 소유권은 관리자 권한으로 실행 중인 사용자가 재부팅한 후에만 액세스할 수 있는 수준까지 잭으로 처리됩니다.
IIS가 문제의 일부입니다.수정할 파일이 많이 필요한 두 개의 주요 분기 사이를 전환하면 IIS가 파일 또는 디렉터리(일반적으로 DLL)를 삭제합니다.이 시점에서 IIS 프로세스는 디스크의 파일을 잠겨 있고 아무도 소유하지 않은 것처럼 보이는 버전으로 자동으로 덮어씁니다.
이 시점에서 IIS를 중지해도 작동하지 않습니다.제가 알아낸 최선의 방법은 재부팅하는 것이며, 향후 주요 지점에서 변경하기 전에 IIS를 중지하는 것을 기억하는 것입니다.
저는 그것이 질문에 대한 답이 아니라는 것을 알지만, 다른 사람들에게 도움이 될 수도 있습니다.
vcode를 사용하는 경우 터미널을 종료하고 새 터미널을 엽니다.그렇지 않으면 터미널도 가까울 수 있습니다.
Windows에서는 거북이가 될 수 있습니다.이러한 파일을 차단하는 GIT 프로세스입니다.작업 관리자를 열고 프로세스 TGitCache.exe를 종료합니다.
나는 방금 이 일련의 답들을 우연히 발견했습니다 - 이 오류는 정말 가짜 오류입니다.오류: 'reddit/app/views/links' 상태를 지정할 수 없습니다. 권한이 거부되었습니다.
합병을 시도할 때 제가 가진 것은 그게 전부입니다.저는 몇 개의 답을 읽고 깨달았어요. 제가 해야 할 일은 아톰이라는 코드 에디터를 닫는 것뿐이었습니다.
편집기를 닫자 - "git merge"를 다시 실행하고 붐을 일으켰습니다.
정말 무의미한 실수야:(
사용하는 IDE(사용하는 경우)도 방해가 되었을 수 있습니다.Qt Creator를 사용할 때 저도 그렇게 되었습니다.
Windows에서 이 문제가 가끔 발생하는 경우
오류: 'filename'을(를) stat할 수 없습니다.권한 거부
대부분의 경우 여러 개의 비트바시 인스턴스가 열려 있으며, gitbash 인스턴스 중 하나는 내가 풀하는 원격 분기에 존재하지 않는 디렉토리에 있습니다.
Gitbash의 한 인스턴스를 제외한 모든 인스턴스를 닫으면 문제가 해결됩니다.
웹 팩을 실행 중인 경우 종료합니다.IDE도 종료합니다.그런 일들을 하고 나면 잘 될 겁니다.
Sublime을 사용할 때도 이러한 현상이 발생할 수 있습니다.프로그램 구매를 요청하는 텍스트 및 팝업 창이 닫히지 않았습니다.
Win 10의 SourceTree를 사용하여 Atom 편집기를 닫음으로써 문제를 해결했습니다.
오류 재현:
- B 지점에서 Atom을 사용하여 md 파일을 만들고 저장 및 커밋합니다.
- 분기 A로 전환하고 서버에서 새 커밋을 풀합니다.
- 다시 전환해 보세요, Opps. "오류: cannot stat 'file': 권한 거부"라고 표시됩니다.
이 문제는 Prepros 또는 Codekit와 같이 프로젝트를 감시하는 사전 처리 소프트웨어/응용 프로그램이 있을 때 종종 발생합니다.또한 프로젝트의 파일이 현재 편집 중인 경우 Atom 및 Sublime(심지어 Notepad++도 포함)에서 이 문제가 발생할 수 있습니다.
문제를 해결하는 가장 쉬운 방법은 프로젝트 파일이 열려 있는 모든 파일을 닫고 분기를 병합한 다음 다시 열어 새로 고치는 것입니다.이렇게 하면 프로그램이 변경 사항을 더 이상 인식하지 못해 프로젝트를 수동으로 새로 고쳐야 하는 문제를 피할 수 있습니다.
IntelliJ 통합 단말기 내부에서 리베이스를 하는 동안 Windows에서 제게 발생했습니다.Gitbash 클라이언트 인스턴스가 병렬로 실행되고 있음을 알게 되었습니다.
Gitbash를 닫음으로써 문제가 해결되었습니다.
Sublime, VS Code, Webstorm 등의 IDE를 닫고 CMD, Powershell, CMDer, Terminal 등의 폴더가 열려 있는 프로그램을 닫으면 문제가 해결됩니다.
저도 비슷한 문제가 있었습니다.하지만 그것은 매우 간단하게 해결할 수 있었습니다.Windows 컴퓨터에서 파일 탐색기가 한 분기에는 있지만 체크아웃한 다른 분기에는 없는 폴더가 열려 있었습니다.파일 탐색기를 닫으면 문제가 해결됩니다.
나는 이것을 Win 7 아래에서 막 마쳤습니다.
gitstash 팝업 오류: 'parentFolder/subfolder'를 stat할 수 없음: 사용 권한 거부 오류: 'parentFolder/subfolder'를 stat할 수 없음: 사용 권한 거부
진단:
서브폴더에 가보니 서브폴더가 있는데 삭제할 수가 없었습니다!
"프로세스 탐색기" -> 찾기 -> 핸들 찾기 및 Dll -> "하위 폴더" 이름을 거기에 넣고 검색합니다.
결과: XMLSpy가 xml 중 하나를 열어 XML Spy를 닫고 stash pop을 다시 시도한 것으로 드러났습니다. 이제 작동합니다.
다른 모든 응답자가 말하는 것처럼 디렉터리를 잠그는 모든 앱을 닫는 대신 모든 파일/디렉토리를 닫지 않고 잠금을 해제하는 유틸리티를 사용하는 것이 대안이 될 수 있습니다. (Visual Studio를 다시 시작해야 하는 것은 싫습니다.
LockHunter는 제가 사용하는 것입니다. https://lockhunter.com/ 다른 사람들도 있을 것 같지만, 이것은 저에게 아주 효과적이었습니다.
이 문제에 대한 저의 조우는 편집자인 Intellij에 의해 발생했습니다.내부 버전 제어의 일부로 모든 숨겨진 git 파일을 검사하고 잠갔습니다. (여러 가지 이유로, 저는 Intellij와 함께 제공되는 git 플러그인을 사용하지 않았습니다...)
그래서 Administrator로 일반 dos 창을 열고 디렉토리로 변경하여 실행했습니다.
attrib -R /S
이를 통해 파일 잠금이 제거되고 이후 모든 작업이 수행되었으며 GitHub Windows 클라이언트를 사용하여 변경 사항을 동기화할 수 있었습니다.
위의 "Visual Studio 닫기" 답변에 동의합니다.
그러나 Visual Studio를 닫은 후에도 추가로 수행해야 하는 단계는 Task Explorer에서 "devenv.exe" Visual Studio 프로세스를 수동으로 종료하는 것이었습니다.이 작업을 수행한 후 다시 Gitbash를 실행할 수 있었습니다.
기트풀
그리고 "filename stat filename" 오류가 사라졌습니다.이는 Visual Studio 확장으로 인해 프로세스가 닫힌 후에도 더 오래 열려 있기 때문일 수 있습니다.
저는 방금 이 문제를 겪었습니다.문제는, 만약 당신이 파일을 열었더라면, 그것은 베이스를 바꾼 후에 제거되었다는 것입니다. (이 파일을 더 이상 가지고 있지 않은 분기가 있었습니다.) git-system이 손상된다는 것입니다.그래서 나는 열려있는 모든 파일을 닫고 다른 지점에서 체크아웃을 시도했습니다.
Git Bash 버전 2.9.0.windows1을 실행하는 Windows 1064 Bit에서도 동일한 문제가 발생합니다.
Windows Defender 제외 항목에 Git 소프트웨어 폴더(C:\Program Files\Git)를 추가했습니다.
제외가 추가된 후,git checkout 'file'
잘 작동했습니다.
이 오류는 이전 git 작업으로 인해 파일이 여전히 "잠겨져" 있기 때문에 발생할 수도 있습니다.이는 Windows 파일 시스템 계층의 작동 방식과 관련이 있습니다.저는 이것에 대한 멋진 설명을 읽은 적이 있는데, 어디에 있는지 기억이 나지 않습니다.
그러나 이 경우 기본적으로 레이스 조건이므로 중단된 리베이스 프로세스를 계속하기만 하면 됩니다.불행하게도 이런 일은 항상 저에게 일어나고 있습니다. 그래서 저는 제 기본을 유지하기 위해 이 작고 위험한 도우미를 썼습니다.
#!/bin/sh
set -e
git checkout .
git clean -df
git rebase --continue
만약 당신이 특별한 확신을 원한다면, 당신은 사용할 수 있습니다.git rebase --edit-todo
적용할 다음 커밋이 실제로 이전에 적용되지 않은 커밋인지 확인합니다.사용하다git clean -dn
중요한 파일을 삭제하지 않도록 합니다.
창에서 포토샵을 사용할 때 발생했습니다.이미지를 저장하고 브랜치로 전환했을 때(이미지를 연 상태에서 포토샵을 그대로 두었을 때) git 오류가 발생했습니다.포토샵에서 이미지를 닫고 다시 시도합니다.
Meld 병합 도구를 연 경우 해당 도구를 닫습니다.파일 덮어쓰기를 차단합니다.
저장소와 관련된 w3wp.exe 프로세스를 제거하는 것이 저를 위해 해결되었습니다.
저의 경우, 웹팩 개발 서버가 뒤에서 실행되고 있었습니다.
VS1013이 8.1을 대상으로 분기를 진행하고 있을 때 8.0 분기를 확인하려고 할 때 이 오류가 발생했습니다.VS를 탭하여 모두 업데이트하도록 허용해야 했습니다.그러면 저는 8.0 지점을 오류 없이 확인할 수 있었습니다.
또한 Git Shell을 사용하는 Windows 시스템에서 동일한 오류가 발생했습니다.
하지만, 그 당시에 저는 여러 개의 Git 터미널이 열려 있었습니다.
첫 번째 터미널은 위에 게시한 오류를 수신했고 다른 터미널은 이전에 실행했습니다.grunt serve
yoman(요먼) 터미널 령아 (링크명래의아링▁terminal크)두 번째 터미널은 로컬 서버 인스턴스를 호스팅하기 위해 열려 있어야 했습니다.
진행 중인 프로세스를 실행하는 모든 터미널 창을 종료하면 오류가 사라질 수 있습니다.
적어도 그것은 저에게 효과가 있었습니다.두 번째 터미널 창을 종료한 후, 저는 다른 지점을 쉽게 확인하고 파일을 조작할 수 있었습니다.
그룬트 서브 사령부 - 요먼.입출력
http://yeoman.io//http://yeoman.io/learning/
방금 이 문제에 부딪혔습니다.여기에 있는 어떤 답도 저를 위해 이 문제를 해결하지 못했습니다.
결국 나는 마스터 브랜치로 다시 전환한 후 존재하지 않는 것처럼 보이는 브랜치에 뉘트 패키지를 추가했습니다.일단 합병을 하면 뉴턴소프트...xml이 stat할 수 없습니다.문제의 파일로 이동하여 열었는데 Windows에서 파일을 찾을 수 없다는 오류를 반환했습니다(바로 보고 있었는데도).
마우스 오른쪽 버튼을 클릭하여 파일을 삭제하는 것이 문제를 해결하는 방법입니다(작동은 했지만 창에서 찾을 수 없어서 열 수 없었습니다).?) 및 병합을 다시 시도하면 문제가 해결됩니다.
매우 이상합니다.
이것이 나중에 누군가에게 도움이 되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/5970879/git-rebase-error-cannot-stat-file-permission-denied
'IT' 카테고리의 다른 글
AdMob에 응용 프로그램을 넣은 후 "라이브러리를 찾을 수 없습니다" 오류가 발생 (0) | 2023.05.23 |
---|---|
원격 마스터를 로컬 분기에 병합하는 방법 (0) | 2023.05.23 |
PowerShell을 사용하여 관리자로 명령을 실행하시겠습니까? (0) | 2023.05.23 |
Git 저장소에서 모든 태그 삭제 (0) | 2023.05.23 |
Excel 시트를 통해 Python 루프, 한 쪽에 배치 (0) | 2023.05.23 |