Google云Debian虚拟机Git拉取权限异常问题求助
Git Pull权限问题解决方法
问题根源
Git执行git pull更新远程引用时,需要对.git/refs/remote/origin/下的文件及目录拥有写入权限。即便父仓库目录是775权限且归属www-data:my-group,但.git内部的子目录/文件可能继承的是www-data:www-data的组归属,导致你所在的my-group没有写入权限,从而触发Permission Denied错误。
解决步骤
检查
.git内部相关路径的权限归属:ls -la .git/refs/remote/origin/查看输出中文件/目录的组是否为
my-group,若显示为www-data则说明组权限不匹配。递归修正
.git目录的组归属,并开放组写入权限:chgrp -R my-group .git/ chmod -R g+w .git/设置
.git目录的setgid位,确保后续新生成的文件/目录自动继承my-group组:chmod g+s .git/验证权限设置:
ls -la .git/refs/remote/origin/确认输出中所有项的组为
my-group,且权限包含g+w。测试
git pull:git pull origin my-branch
补充说明
设置setgid位后,后续无论是你还是www-data用户操作Git生成的新文件,都会自动继承my-group组,避免再次出现权限不匹配的问题,同时保留www-data作为仓库所有者的权限,满足业务需求。
内容的提问来源于stack exchange,提问作者SuperNoob
相关产品推荐
相关产品推荐

