Khi bạn sử dụng git pull
(tương đương với git fetch; git merge
), git sẽ cập nhật tệp mà không thay đổi chủ sở hữu (git không lưu trữ thông tin đó). Nhưng nếu có tệp mới để tạo, người dùng hiện tại sẽ được đặt làm chủ sở hữu.
Có giải pháp khác nhau để giải quyết điều này. Dễ dàng hơn có lẽ là thêm một post-update
hook (trong .git/hooks
thư mục của bạn ) để tự động gọi chown john:john . -R
sau khi hợp nhất / pull ( xem ví dụ về giải pháp SO ).
Các giải pháp thay thế là:
- Chạy
git pull
với tư cách là người dùng john thay vì root (điều đó sẽ yêu cầu quyền ghi vào thư mục john cho .git).
- Tạo một hook để thực hiện triển khai, sẽ sử dụng john làm người dùng, hoặc thực hiện chown sau khi cập nhật (vì vậy bạn sẽ phải thực hiện
git pull
bên trong post-receive
hook của repo trần).
john
chủ sở hữu của thư mục hiện tại?