从应用程序文件夹运行这些命令时:
git add .
git commit -m "commit details"
git push
我得到错误:
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$
我试着下这个命令:
chown -R user:user /project/directory
但是,由于我一开始就运行了我不确定的命令,我遇到了一大堆麻烦,我想知道这是否是正确的解决方案。
如果用户是“Christopher”,而我的Rails应用程序所在的文件夹名为“myapp”,那么确切的语法应该是什么呢?
chown -R user:christophe /myapp/app/views/reviews/update.js.erb
3条答案
按热度按时间inkz8wg91#
您不小心使用提升的权限将文件或文件夹提交给了git,而现在git无法修改这些对象。安全的做法是递归地强制
.git/objects/
下所有文件的所有权给您当前的用户,以解决这个问题。1.请确保您位于出现错误的存储库中。
1.输入以下命令获取您的用户名
whoami
1.输入此命令
sudo chown -R your_user_name .git/*
1.终于
git add .
xwbd5t1u2#
从man page
chown命令会将File参数所指定之档案的拥有者变更为Owner参数所指定的使用者。Owner参数的值可以是/etc/passwd档案中的使用者ID或登入名称。您也可以选择性地指定群组。Group参数的值可以是/etc/group档案中的群组ID或群组名称。
关于-R选项
-R型
以递归方式对目录进行降序,更改每个文件的所有权。当遇到符号链接并且该链接指向某个目录时,将更改该目录的所有权,但不会进一步遍历该目录。
所以
会将
update.js.erb
文件的所有者更改为组christophe
中的用户user
,这可能不是您想要的。在您的情况下,将回购协议的所有者更改为您自己,即
应该足够了。
如果您不知道自己的用户名,可以使用
whoami
命令查找。ycl3bljg3#
你可以访问.git/文件夹中的所有文件,只需运行以下命令: