从您在评论中的描述看来,问题在于您的apache
用户无法写入存储库,这在您使用git pull
. 你有两个行动方案:
- 设置 Apache 以作为另一个用户运行脚本(例如,在 VirtualHost 上或通过 userdir使用suEXEC)
- 更改存储库的权限,以便
apache
用户可以写入它
您应该仔细考虑这两种选择的安全隐患,但第二种选择可能是最简单的。如果您还没有这样的组,您可以使用以下命令创建它:
addgroup gitwriters
...然后将您自己和 Apache 用户添加到该组:
adduser [yourusername] gitwriters
adduser apache gitwriters
然后您可以按照另一个问题中的说明更改存储库的权限。重申那些有一些细微变化的:
# Recursively, set the group ownership of every file and directory of your repository:
chgrp -R gitwriters /path/to/your/repo
# Recursively, make every file and directory of your repository readable and writable
# by the group:
chmod -R g+rw /path/to/your/repo
# Recursively, set the setgid of every directory in the repository. The setgid bit
# on directories means that files created in the directory will have the same group
# ownership as the directory.
find /path/to/your/repo -type d -print0 | xargs -0 chmod g+s
然后希望你git pull
应该工作。