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

CHa*_*ris 8 git github chown

我曾经能够从我的App文件夹中做到:

git add .
git commit -m "commit details"
git push
Run Code Online (Sandbox Code Playgroud)

我的本地机器上的最新版本的应用程序将在我的主仓库中备份,在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$ 
Run Code Online (Sandbox Code Playgroud)

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

chown -R user:user /project/directory
Run Code Online (Sandbox Code Playgroud)

但是看到我在运行命令时遇到了一大堆麻烦,我不确定,我想知道这是否是我的命令.它有什么作用?可以撤消吗?

如果用户是"Christophe",并且存储我的Rails应用程序的文件夹称为"myapp",那么确切的语法应该是什么?我的意思是它应该是

chown -R user:christophe /myapp/app/views/reviews/update.js.erb
Run Code Online (Sandbox Code Playgroud)

抱歉有这些问题.

Gab*_*lla 19

chown [ -f ] [ -h ] [ -R ] Owner [ :Group ] { File ... | Directory ... }
Run Code Online (Sandbox Code Playgroud)

手册页

chown命令将File参数指定的文件的所有者更改为Owner参数指定的用户.Owner参数的值可以是/ etc/passwd文件中的用户ID或登录名.可选地,还可以指定组.Group参数的值可以是/ etc/group文件中的组ID或组名.

关于-R选项

-R
递归下降目录,更改每个文件的所有权.遇到符号链接且链接指向目录时,将更改该目录的所有权,但不会进一步遍历该目录.

所以

chown -R user:christophe /myapp/app/views/reviews/update.js.erb
Run Code Online (Sandbox Code Playgroud)

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

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

sudo chown -R christophe /path/to/your/local/repo
Run Code Online (Sandbox Code Playgroud)

应该足够了.

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


小智 17

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

2)输入您的用户名

`whoami`
Run Code Online (Sandbox Code Playgroud)

3)输入此命令

sudo chown -R dwain .git/*