Когда вы используете git pull(что эквивалентно git fetch; git merge), git обновляет файлы без изменения владельца (git не хранит эту информацию). Но если есть новые файлы для создания, текущий пользователь будет назначен владельцем.
Существует другое решение, чтобы решить эту проблему. Возможно, проще добавить post-updateхуки (в вашем .git/hooksкаталоге) для автоматического вызова chown john:john . -Rпосле слияния / вытягивания ( см. Пример этого решения SO ).
Альтернативные решения:
- Запустите
git pullот имени пользователя john вместо root (для этого потребуется разрешение на запись в john для каталога .git).
- Создайте ловушку для развертывания, которая будет использовать john в качестве пользователя, либо делать chown после обновления (так что вам придется делать
git pullэто post-receiveв ловушке чистого репо).
johnвладелец текущего каталога?