Linux 환경의 Git 풀이 파일 소유자를 변경합니다.

Linux 환경의 Git 풀이 파일 소유자를 변경합니다.

git pull라이브 서버에서 실행할 때마다 파일 소유자가 변경되는 이유는 무엇입니까 ? 나는 그것을 수동으로 계속한다 chown john:john index.php.

git pull파일 소유자가 자동으로 되거나 유지되도록 하려면 무엇을 변경해야 합니까 john?

답변1

git pull(와 동일 )을 사용하면 git fetch; git mergegit은 새 파일을 생성하고 이전 소유권에 대해 신경 쓰지 않습니다(git은 해당 정보를 저장하지 않습니다).

이 문제를 해결하기 위한 다양한 솔루션이 있습니다. 더 간단한 접근 방식은 병합/가져오기 후에 자동으로 호출할 post-update후크(디렉토리에 .git/hooks) 를 추가하는 것입니다 (chown john:john . -R예를 보려면 SO 솔루션을 참조하세요.).

대체 솔루션은 다음과 같습니다.

  • git pull루트 대신 사용자 john으로 실행합니다. (이렇게 하려면 .git 디렉터리에 대한 john 쓰기 권한이 필요합니다.)
  • john을 사용자로 사용하는 배포용 후크를 생성하거나 업데이트 후 chown을 수행합니다(따라서 git pull베어 저장소의 후크 내에서 수행해야 합니다).post-receive

리눅스에서는 이것이 또 다른 해결책이 될 수 있습니다 setuid/setgid

관련 정보