UNIX环境Git裸仓库创建与权限配置问题:提交文件失败求助
解答你的Git仓库创建与权限配置问题
一、应该在哪个目录创建Git仓库?
你已经在服务器上搭建了裸仓库 /var/repos/git/repo00001,这个仓库是作为团队共享的远程仓库使用的,普通用户不需要在这个目录下操作。
普通用户需要在自己的本地工作目录(比如个人home目录下的项目文件夹)创建本地仓库,具体步骤参考:
- 打开终端,进入你想存放项目的自定义目录,比如:
mkdir ~/my-project && cd ~/my-project - 初始化本地仓库:
git init - 将本地仓库与服务器上的裸仓库关联:
git remote add origin ssh://你的普通用户名@服务器IP/var/repos/git/repo00001
之后你就可以在本地完成文件编写、提交,再推送到远程裸仓库了。
二、/var/repos/git目录的权限、用户及用户组设置
要让普通用户能正常推送/拉取代码,需要给这个目录配置合理的权限与组权限,具体操作如下:
- 创建专门的Git用户组(统一管理所有需要访问仓库的用户):
sudo groupadd git - 将你的普通用户加入git组:
这里sudo usermod -aG git Anand Sadasivam-aG是追加用户到组的参数,不会移除用户原有组权限,记得替换成你的实际用户名。 - 设置/var/repos/git目录的属主与属组:
用root作为属主、git组作为属组,方便后续统一管理仓库权限。sudo chown -R root:git /var/repos/git - 配置目录权限,确保git组拥有读写执行权限:
sudo chmod -R 775 /var/repos/git775权限意味着属主和属组有读、写、执行权限,其他用户仅拥有读权限,兼顾共享性与安全性。 - 设置setgid位,让新创建的仓库自动继承git组权限:
这样后续在该目录下新建的裸仓库,会自动继承git组作为属组,避免每次新建仓库都要手动调整权限。sudo find /var/repos/git -type d -exec chmod g+s {} \; - 补全已有裸仓库的权限配置:
针对你已经创建的repo00001,手动同步权限:sudo chown -R root:git /var/repos/git/repo00001 sudo chmod -R 775 /var/repos/git/repo00001
完成以上配置后,你的普通用户应该就能正常提交代码到远程裸仓库了。
内容的提问来源于stack exchange,提问作者Dev Anand Sadasivam
相关产品推荐
相关产品推荐

