[git] 힘내 푸시 오류 : 이전 연결을 해제 할 수 없습니다 (권한 거부).

원격 서버에는 저장소의 자식 체크 아웃을하기 위해 수신 후 후크가 설정되어 있습니다.

#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f

그러나 로컬 컴퓨터에서 서버의 git 리포지토리로 푸시하면 다음 오류 메시지가 나타납니다.

remote: error: unable to unlink old '<file>' (Permission denied)

이것은 거의 모든 파일에 대해 한 번의 오류 메시지로 여러 번 나타납니다.

그러나 git을 사용하여 변경할 수있는 README.txt 파일이 있습니다. 권한은 다음과 같습니다.

-rw-r--r--  1 <serverusername>  <serverusername>  2939 Aug  2 10:58 README.txt

그러나 소유자와 권한이 동일한 다른 파일은 오류가 발생합니다.

다른 웹 사이트의 다른 로컬 저장소에는 로컬 컴퓨터 사용자 이름이 소유자 인 파일이 있으며 원격 서버로 푸시하면 파일의 원격 서버 소유자를 존중하고 매력처럼 작동합니다.

분명히 권한 관련 오류 인 것 같지만 제안을 해결할 방법을 찾을 수 없습니다.



답변

파일을 링크 해제해야 할 경우 파일이 아닌 파일에 대한 권한 ‘w’가 있어야합니다.


답변

sudo chmod -R ug+w .;

이 명령은 문제를 해결합니다. 폴더에 대한 쓰기 권한을 부여합니다.


답변

IDE를 사용하는 경우 문제는 파일이 일부 프로세스에서 사용되었다는 것입니다. 바람둥이가 파일을 사용하는 것처럼. 특정 프로세스를 식별하고 닫으십시오. 문제가 해결 될 것입니다.


답변

나는 같은 문제가 있었고 위의 해결책 중 어느 것도 나를 위해 일하지 않았다. 문제가있는 폴더를 삭제했습니다. 그때:

git reset --hard

git 상태를 정리하기 위해 남아있는 파일을 모두 삭제 한 후 다음을 수행하십시오.

git pull

마침내 효과가있었습니다.

참고 : 폴더가 예를 들어 빌드 파일이있는 공용 폴더 인 경우 파일을 다시 빌드해야합니다.


답변

폴더에 대한 소유권에 문제가 있다고 생각하여 현재 사용자 소유권으로 설정하십시오.

sudo chown -R your_login_name /path/to/folder

해결책을 찾을 수 있습니다 [여기] [1]


답변

FWIW-비슷한 문제가 있었고 이것이 권한 모드를 넘어서서 그것을 완화했는지 확실하지 않습니다.이 문제로 분기를 사용하고있는 Eclipse를 닫는 중입니다.


답변

이것은 오래된 질문이지만 Mac 사용자에게 도움이 될 수 있습니다.

Time Machine에서 수동으로 파일을 복사하는 경우 Time Machine을 통해 파일을 복원하는 대신 모든 것에 ACL 을 추가 하여 권한을 손상시킬 수 있습니다.

예를 들어, 이 기사 에서 “Mac OS X 파일 권한을 수정하는 방법” 섹션은 “모두”가 사용자 설정 권한을 가지고 있음을 보여줍니다.

http://dreamlight.com/how-to-fix-mac-os-x-file-permissions의 잘못된 권한

해당 디렉토리 / 파일에서 ACL을 제거해야합니다. 이 수퍼 유저 답변 은 여기에 있지만 다음 명령은 다음과 같습니다.

sudo chmod -RN .

그런 다음 디렉토리와 파일에 적절한 권한이 있는지 확인할 수 있습니다. 750디렉토리와 644파일에 사용 합니다.