본문 바로가기

Dev. Etc/Git

[GitHub] Git 을 통해 파일 chmod(퍼미션) 조작하는 방법

 

 

 

 

회사에서 젠킨스로 배치서버를 구축해서 사용하고 있는데, GitHub 레파지토리에서 소스를 전부가져와서 jenkins 유저권한에 해당 .sh파일에 권한이 없어서 퍼미션 에러가 발생하여 처리했던 내용을 포스팅하겠습니다.

 

아래 처럼 현재 깃 퍼미션 상태를 확인할 수 있습니다.

> git ls-files --stage
100644 blob 923665321dv99aev6cd1e2c61e1b1201274cb11b file.sh

 

맨 앞에 644는 해당 파일에서 깃 인덱스가 잡혀있는 퍼미션입니다. 

따라서 git pull을 하게 되면 644의 퍼미션으로 계속 덮어씌여집니다.  이부분을 변경하도록 하겠습니다.

 

 

 

 

 

 

 

 

아래와 같이 입력해주면 755로 퍼미션이 변경된것을 확인할 수 있습니다.

> git update-index --chmod=+x file.sh
> git ls-files --stage
100755 blob 923665321dv99aev6cd1e2c61e1b1201274cb11b file.sh

다시 권한을 644로 돌리고 싶다면, +x를 -x로 변경하면 됩니다.(git update-index --chmod=-x)

 

이렇게 한뒤에 git commit 하고 push를 하면 반영이 됩니다.

 

 

 

 

만약 여기서 커밋하고 푸시했는데 clean이라고 뜬다면

> git config core.fileMode false

git config core.fileMode false으로 false로 설정 변경합니다.

기본적으로 저장소에 파일을 추가하면 Git은 파일 시스템 속성을 존중하고 그에 따라 올바른 파일 모드를 설정하려고 합니다. core.fileMode옵션을 false 로 설정 하여 이 기능을 비활성화할 수 있습니다.