[Git] 解决 insufficient permission for adding an object to repository database

【环境】

OS: CentOS 6.5

Git: 1.7.1

 

【症状描述】

  Git 中心仓库路径 ~/project.git,克隆库路径 ~/project.clone,克隆库中包含一个文件 ~/project.clone/sample.js 。

 

  以 guest 账号登录服务器,在某个路径下执行 grunt,在克隆库目录下得到一个新的文件 ~/project.clone/sample.js。进入克隆库目录,执行 git commit ,提交成功,推送至中心库,返回错误提示 insufficient permission for adding an object to repository database 。

 

  另外克隆一个库为 ~/project2.clone ,手动修改其中的 ~/project.clone/sample.js ,提交成功,推送成功。

 

  由此可知,问题出在由 grunt 生成的 sample.js 文件。但 grunt 也是使用 guest 账号执行,双方权限一致,为什么会出现权限不足的情况,具体原因不详,只知道可能是用户组权限出了问题。

 

【解决方法】

  进入中心仓库:cd ~/project.git

  使用 sudo 更改目录权限:

$ sudo chmod -R g+ws *

$ sudo chgrp -R <groupname> *

$ git repo-config core.sharedRepository true

  以上需要 sudo 权限,<groupname> 是指当前用户所处的用户组,可以使用 $ groups <username> 命令来查看。

 

  再次执行 grunt ,提交成功,推送成功。

你可能感兴趣的:(Permission)