github错误:将对象添加到存储库数据库的权限不足

时间:2013-08-19 22:42:03

标签: git github chown

我曾经能够从我的App文件夹中执行此操作:

git add .
git commit -m "commit details"
git push

我的本​​地计算机上的最新版本的应用程序将在我的主仓库中备份,位于github上。

现在,当我得到git add .命令时,我得到:

mycompaq@ubuntu:~/myapp$ git add .
error: insufficient permission for adding an object to repository database .git/objects

error: app/views/reviews/update.js.erb: failed to insert into database
error: unable to index file app/views/reviews/update.js.erb
fatal: updating files failed
mycompaq@ubuntu:~/myapp$ 

我在Stackoverflow上的一条消息中读到了解决类似问题的方法:

chown -R user:user /project/directory

但是,当我通过运行命令首先看到我遇到麻烦时,我不确定,我想知道这是否是我的命令。它有什么作用?可以撤消吗?

确切的语法应该是什么,如果用户是' Christophe'以及存储我的Rails应用程序的文件夹被称为' myapp'。我的意思是它应该是

chown -R user:christophe /myapp/app/views/reviews/update.js.erb

对不起所有问题。

4 个答案:

答案 0 :(得分:17)

chown [ -f ] [ -h ] [ -R ] Owner [ :Group ] { File ... | Directory ... }

来自man page

  

chown命令更改File指定的文件的所有者   owner参数指定的用户参数。价值   Owner参数可以是用户ID或在中找到的登录名   / etc / passwd文件。可选地,还可以指定组。价值   Group参数的值可以是组ID或在其中找到的组名   / etc / group文件。

关于-R选项

  

-R
  以递归方式下降目录,更改每个目录的所有权   文件。遇到符号链接且链接指向a时   目录,该目录的所有权已更改但目录   没有进一步横穿。

所以

chown -R user:christophe /myapp/app/views/reviews/update.js.erb

会将update.js.erb文件的所有者更改为群组user中的用户christophe,这可能不是您想要的。

在您的情况下,将回购的所有者更改为您自己,即

sudo chown -R christophe /path/to/your/local/repo

应该足够了。

如果您不知道您的用户名,可以使用whoami命令找到它。

答案 1 :(得分:13)

1)确保您在存储库中遇到错误。

2)输入

获取用户名
`whoami`

3)输入此命令

sudo chown -R dwain .git/*

答案 2 :(得分:0)

我只是使用sudo命令允许了我的文件夹及其文件

sudo -r 777 directory/

答案 3 :(得分:0)

您可以访问.git /文件夹中的所有文件。只需运行以下命令:

sudo chmod a+xrw .git/*