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