You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UNIX环境Git裸仓库创建与权限配置问题:提交文件失败求助

解答你的Git仓库创建与权限配置问题

一、应该在哪个目录创建Git仓库?

你已经在服务器上搭建了裸仓库 /var/repos/git/repo00001,这个仓库是作为团队共享的远程仓库使用的,普通用户不需要在这个目录下操作。

普通用户需要在自己的本地工作目录(比如个人home目录下的项目文件夹)创建本地仓库,具体步骤参考:

  1. 打开终端,进入你想存放项目的自定义目录,比如:
    mkdir ~/my-project && cd ~/my-project
    
  2. 初始化本地仓库:
    git init
    
  3. 将本地仓库与服务器上的裸仓库关联:
    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目录的属主与属组:
    sudo chown -R root:git /var/repos/git
    
    用root作为属主、git组作为属组,方便后续统一管理仓库权限。
  • 配置目录权限,确保git组拥有读写执行权限:
    sudo chmod -R 775 /var/repos/git
    
    775权限意味着属主和属组有读、写、执行权限,其他用户仅拥有读权限,兼顾共享性与安全性。
  • 设置setgid位,让新创建的仓库自动继承git组权限:
    sudo find /var/repos/git -type d -exec chmod g+s {} \;
    
    这样后续在该目录下新建的裸仓库,会自动继承git组作为属组,避免每次新建仓库都要手动调整权限。
  • 补全已有裸仓库的权限配置:
    针对你已经创建的repo00001,手动同步权限:
    sudo chown -R root:git /var/repos/git/repo00001
    sudo chmod -R 775 /var/repos/git/repo00001
    

完成以上配置后,你的普通用户应该就能正常提交代码到远程裸仓库了。

内容的提问来源于stack exchange,提问作者Dev Anand Sadasivam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:18:13