Trong máy chủ từ xa, tôi có một hook post-receive được thiết lập để thực hiện kiểm tra git của kho lưu trữ của tôi:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
Nhưng khi tôi thực hiện một cú đẩy từ máy cục bộ của mình đến kho git trong máy chủ, tôi nhận được các thông báo lỗi sau:
remote: error: unable to unlink old '<file>' (Permission denied)
Điều này xuất hiện nhiều lần, một thông báo lỗi cho hầu hết mọi tệp.
Tuy nhiên tôi có tệp README.txt mà tôi có thể thay đổi bằng git, đây là quyền của nó:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
Nhưng các tệp khác có cùng chủ sở hữu và cùng quyền, cho tôi lỗi đó.
Trong một kho lưu trữ cục bộ khác cho một trang web khác, tôi có các tệp với tên người dùng máy cục bộ của mình là chủ sở hữu và khi tôi đẩy đến máy chủ từ xa, nó tôn trọng chủ sở hữu máy chủ từ xa của các tệp và hoạt động như một bùa mê.
Rõ ràng có vẻ như là một lỗi liên quan đến quyền, nhưng tôi không thể tìm ra cách khắc phục, có gợi ý nào không?
sudo chmod -R g+w
các thư mục có tội.