code

Git Checkout 경고 : 파일 링크를 해제 할 수 없습니다. 권한이 거부되었습니다.

codestyles 2020. 8. 17. 08:57
반응형

Git Checkout 경고 : 파일 링크를 해제 할 수 없습니다. 권한이 거부되었습니다.


'연결 해제 할 수 없음'경고와 관련된 git에 대한 유사한 문제가 있다는 것을 알고 있지만 사용할 수 없었습니다.

가장 큰 차이점은 이것이 내가 어떤 식 으로든 서브 모듈을 다루지 않았을 때 발생했다는 것입니다 (이전에 다루어 본 적이 없습니다). '업그레이드'라는 브랜치를 만들고 이전 프레임 워크 파일을 삭제하고 새 파일에 복사했습니다. 나는 git add -A를 사용한 다음 모든 것을 커밋했습니다. 트렁크 브랜치를 체크 아웃하려고 할 때 다음 오류로 응답했습니다.

warning: unable to unlink requirements/views/sk/index.php: Permission denied
warning: unable to unlink requirements/views/sv/index.php: Permission denied
warning: unable to unlink requirements/views/zh/index.php: Permission denied
warning: unable to unlink requirements/views/zh_cn/index.php: Permission denied
warning: unable to unlink requirements/views/zh_tw/index.php: Permission denied

...기타. 수백 개가 있습니다.

처음에는 이것이 단순히 권한 문제라고 생각했기 때문에 전체 요구 사항 디렉토리에 그룹 쓰기 권한을 반복적으로 추가했지만 변경 사항은 없습니다.

편집 : 아래 답변에서 제안했듯이 나는 똑같은 일을 시도했지만 다른 모든 것을 닫았습니다. 나는 이전보다 더 많은 운이 없었습니다.

이 문제는 정상적인 개발로 돌아 가기 위해 트렁크로 이동할 수 없기 때문에 특히 쇠약 해집니다.


일반적으로 해당 파일의 핸들을 해제하지 않는 프로세스가있을 때 이러한 종류의 오류가 표시됩니다.

실행중인 항목이 없는지 확인한 다음 결제를 다시 시도하십시오.

참고 : 이는 Git이 설치된 방식과도 관련이있을 수 있습니다 (Windows에서는 msysgit이 C:\Program또는에 설치된 경우 UAC에서 문제가 발생할 수 있습니다. C:\Program Files" msysgit-sh.exe-fork : Permission denied-Vista 64 bit "및 주석 2 참조) 437 호 )

참고 : 아래 그림과 같이 문제의 일반적인 다른 원인은 반드시 연결 해제 할 수없는 파일이 아닌 디렉토리 (잘못된 소유자)의 권한 문제입니다.


이 오류가 처음 발생했을 때 내 사용자는 파일에 "쓰기"권한이 있지만 포함 된 디렉토리에는 없습니다. 파일이 포함 된 디렉토리의 권한을 확인하십시오.


"링크 해제"는이 경우 본질적으로 "파일 삭제"를 의미합니다.

이 오류는 git 자체가 원인이 아닙니다. 명령 줄 또는 파일 탐색기에서 이러한 파일을 수동으로 삭제하는 것과 유사한 오류가 발생해야합니다.


drupal 7에서 default-settings.php 파일에 문제가있었습니다.이 경우 @rtconner가 말한 것처럼 파일을 삭제하거나 되돌릴 수 없었습니다. 이 파일을 사용하는 응용 프로그램이나 아무것도 없었으며 결국 권한 오류가 발생했습니다.

chmod 777 *폴더에 추가 한 다음 아무 문제없이 되돌릴 수있었습니다.


소유자가 아니기 때문에 액세스 권한이 없습니다.

소유자를 자신으로 변경하여 수정 :

sudo chown -R your_login_name /path/to/folder

쓰기 권한을 변경하여 완료 할 수 있습니다.

sudo chmod -R ug+w . 

이 명령은 'w'현재 디렉토리의 모든 폴더에 대한 권한을 부여합니다.


내 OS X 컴퓨터에서 "git repack"또는 "git gc"를 실행할 때마다이 문제가 발생했습니다. 심지어 관리자 권한으로 git을 실행할 때도 마찬가지였습니다.이 페이지를 방문한 후 마침내 해결했습니다. http://hints.macworld.com /comment.php?mode=view&cid=1734

해결 방법은 터미널을 열고 git repo로 이동하여 .git 폴더로 이동 한 다음 다음을 수행하는 것입니다.

chflags -R nouchg *

그게 문제 였다면 그 후에 git 명령이 정상적으로 작동합니다.


Intellij 를 사용하는 사람들에게 @rtconner는이 문제가 git에 의해 발생하지 않는다고 말했습니다. IDE가 잠겨 있기 때문에 git은 링크를 해제 할 수 없습니다. 따라서 IDE를 닫은 다음 명령 줄을 통해 통합 (또는 원하는대로)을 시도해야합니다.


다음과 같은 경우에도 발생할 수 있습니다.

  1. Docker 컨테이너 내 에서 프로세스를 실행했으며 다음을 수행했습니다 .

  2. 일부 파일은 해당 프로세스에서 생성되었으며 다음과 같습니다.

  3. 파일의 대상은 Docker 호스트에 볼륨으로 마운트됩니다.

  4. gitDocker 호스트에서 실행 중 입니다.


이 경우 커밋하고 실행할 파일을 준비합니다.

git diff --name-only --cached | xargs ls -l 

위의 기준을 충족하는 파일은 다음으로 시작됩니다.

-rw-r--r-- 1 root root ...

그들은 소유하고 root쓸 수 없으며 이는 좋지 않습니다. 실행을 수정하려면 :

 git diff --name-only --cached | xargs -i sh -c 'sudo chown $USER:$USER {}; chmod +w {}'

청소기 솔루션은 아마도 사용하는 것입니다 --user참조 옵션을 도커이부두 노동자의 작성이를 .


제 경우에는 Windows에서 체크 아웃하기 위해 git repo보다 먼저 폴더 이름에 ":"문자가있었습니다.


맥의 터미널에서 난 그냥 이렇게

sudo git checkout. (모든 것을 정리하기 위해)

그리고

sudo git pull origin


을 시도 할 때 가상 머신 (Ubuntu 실행) 내부 에서이 오류가 발생했습니다 git reset --hard.

수정은 단순히 git reset --hardOS X 호스트 컴퓨터에서 실행 하는 것입니다.


다른 제안은 나에게 효과가 없었지만 다음과 같이 효과가있었습니다.

sudo git reflog expire --expire=now --all && sudo git gc --prune=now --aggressive


I have encountered this error and it is caused by wrong "owner/group" of the file/folder. You must seek assistance to your server admin to change the "owner/group" of this file/folder and retry using "git pull" again. Or if you are a sudoer, just sudo chown "your owner name / your group name" and try again pulling your repository. Try it, it works 100% to me!


Make sure that any associated processes or threads are not running and perform end task or force quit as necessary.

Make sure you change the ownership permission.


Just in general, if this happens in Windows, and you are using tortoisegit, it is the status cache of tortoisegit. Kill that process and it will be freed.


I just had to switch user from ubuntu to my actual user name that I'd first done stuff under. That fixed it.


Solved for me by setting my git client (GitExtensions) to always run in admin mode.


I had that problem while using IntelliJ (14.1.3 Ultimate), I wanted to revert changes in some file.

Solved by closing Git Bash opened in another window - another revert trial in IntelliJ worked.


I encountered this error and I think the issue was that I had 'run as admin' when I started Eclipse and created the files, therefore they were owned by Admin (noticed by running 'ls -la' on the folder). When I later tried to stash the files, it didn't let me ('unable to unlink files' and all that). Doing a chmod on the files was the fix for me.


git gc worked for me (in a new tab). Was getting this with every rebase. Thanks http://www.saintsatplay.com/blog/2016/02/dealing-with-git-unlink-file-errors#.W4WWNZMzZZJ


All you need to do is provide permissions, run the command below from the root of your project:

    chmod ug+w <directory path>

I had the same issue , I tried few alternatives as others suggested.

But finally giving correct permission to .git folder solve the issues.

sudo chown -R "${USER:-$(id -un)}" .git

참고URL : https://stackoverflow.com/questions/7199496/git-checkout-warning-unable-to-unlink-files-permission-denied

반응형