【環境】
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 ,提交成功,推送成功。