git pull
라이브 서버에서를 실행할 때마다 파일 소유자가 변경되는 이유는 무엇 입니까? 나는 수동으로 계속하고 있습니다 chown john:john index.php
.
을 수행 할 때 git pull
파일 소유자가 자동으로 유지 되도록하려면 무엇을 변경해야 john
합니까?
답변
git pull
(와 동등한 git fetch; git merge
) 를 사용하면 git은 소유자를 변경하지 않고 파일을 업데이트합니다 (git은 해당 정보를 저장하지 않습니다). 그러나 만들 새 파일이 있으면 현재 사용자가 소유자로 설정됩니다.
이것을 해결하는 다른 해결책이 있습니다. 병합 / 풀 후 자동으로 호출 post-update
할 후크 ( .git/hooks
디렉토리에) 를 추가하는 것이 더 쉽습니다 chown john:john . -R
( 예를 들어 SO 솔루션 참조 ).
대체 솔루션은 다음과 같습니다.
git pull
root 대신 john 사용자로 실행하십시오 (.git 디렉토리에 대해 john에 대한 쓰기 권한이 필요함).- john을 사용자로 사용하거나 업데이트 후 chown을 수행하는 배치를 작성하기위한 후크를 작성하십시오 ( 맨손 저장소
git pull
의post-receive
후크 내부에서 수행해야 함 ).