我在无业游民的计算机上有一个项目,希望将其推送到github存储库中。但是如果不使用sudo
,我将无法添加对象。
vagrant@vagrant:/vagrant/testDir$ git init
Initialized empty Git repository in /vagrant/testDir/.git/`
vagrant@vagrant:/vagrant/testDir$ git add .`
然后我得到这个错误:错误:没有足够权限将对象添加到存储库数据库.git / objects
错误:文件1:无法插入数据库
错误:无法索引文件file1
致命:添加文件失败
尽管如果我使用sudo
(即sudo git add .
)运行该命令,则不会出现任何错误。
我已经确认了项目内部的许可,而且还可以:
vagrant@vagrant:/vagrant/testDir$ ls -al
total 0
drwxr-xr-x 1 vagrant vagrant 160 Dec 23 10:33 .
drwxr-xr-x 1 vagrant vagrant 160 Dec 23 10:33 ..
drwxr-xr-x 1 vagrant vagrant 352 Dec 23 10:33 .git
-rw-r--r-- 1 vagrant vagrant 0 Dec 23 10:33 file1
-rw-r--r-- 1 vagrant vagrant 0 Dec 23 10:33 file2.txt
我在运行于macOS High Sierra的无业游民的计算机上安装了ubuntu 18.04。 无业游民= 2.2.2 虚拟盒子= 6.0.8 r130520
你能帮我吗?
更新1
此外,在.git/
目录上的权限也很好
vagrant@vagrant:/vagrant/testDir/.git$ ls -al
total 12
drwxr-xr-x 1 vagrant vagrant 320 Dec 23 10:52 .
drwxr-xr-x 1 vagrant vagrant 160 Dec 23 04:12 ..
-rw-r--r-- 1 vagrant vagrant 23 Dec 23 04:12 HEAD
drwxr-xr-x 1 vagrant vagrant 64 Dec 23 04:12 branches
-rw-r--r-- 1 vagrant vagrant 111 Dec 23 04:12 config
-rw-r--r-- 1 vagrant vagrant 73 Dec 23 04:12 description
drwxr-xr-x 1 vagrant vagrant 416 Dec 23 04:12 hooks
drwxr-xr-x 1 vagrant vagrant 96 Dec 23 04:12 info
drwxr-xr-x 1 vagrant vagrant 160 Dec 23 04:12 objects
drwxr-xr-x 1 vagrant vagrant 128 Dec 23 04:12 refs
更新2
在.git/objects
目录中的权限也可以。
vagrant@vagrant:/vagrant/testDir/.git/objects$ ls -al
total 0
drwxr-xr-x 1 vagrant vagrant 160 Dec 23 11:06 .
drwxr-xr-x 1 vagrant vagrant 320 Dec 23 11:06 ..
drwxr-xr-x 1 vagrant vagrant 96 Dec 23 11:06 e6
drwxr-xr-x 1 vagrant vagrant 64 Dec 23 11:06 info
drwxr-xr-x 1 vagrant vagrant 64 Dec 23 11:06 pack
答案 0 :(得分:2)
这些是我为解决问题而采取的步骤:
已安装vagrant-vbguest插件
$ vagrant plugin install vagrant-vbguest
重新加载无业游民的机器。
user@MacBook-Pro vagrant-project-machine $ vagrant reload
==> default: Attempting graceful shutdown of VM...
==> default: Checking if box 'bento/ubuntu-18.04' is up to date...
...
...
==> default: Machine booted and ready!
...
[default] GuestAdditions versions on your host (6.0.4) and guest (6.0.8) do not match.
...
...
The following additional packages will be installed:
linux-headers-4.15.0-51
...
...
最后,您可以通过运行以下命令进行确认:
user@MacBook-Pro vagrant-project-machine $ vagrant vbguest --status
...
...
[default] GuestAdditions 6.0.4 running --- OK.
您还可以通过运行以下命令在无业游民机器中进行确认:
vagrant@vagrant:/vagrant/testDir$ modinfo vboxguest
filename: /lib/modules/4.15.0-51-generic/misc/vboxguest.ko
version: 6.0.4 r128413
license: GPL
description: Oracle VM VirtualBox Guest Additions for Linux Module
author: Oracle Corporation
srcversion: 95F53B9B95BC6E03156A1D8
alias: pci:v000080EEd0000CAFEsv00000000sd00000000bc*sc*i*
depends:
retpoline: Y
name: vboxguest
vermagic: 4.15.0-51-generic SMP mod_unload
现在,我无需使用sudo
就可以运行git命令。
答案 1 :(得分:1)
如果检查内容的权限,则权限没问题:
它们在第一层。
但是它们在.git/objects
中吗?
您可以肯定要做一个sudo chown -R vagrant:vagrant .git
还添加core.sharedRepository
设置:
git config --global core.sharedRepository group
OP Kakar提到in the comments hashicorp/vagrant
issue 10913,其中指出:
我相信该错误存在于来宾添加中,因此您需要确保已安装正确的版本。
在Ubuntu中运行modinfo vboxguest
,以查找已安装的版本。我似乎已通过使用
dotless-de/vagrant-vbguest
将我的Virtualbox Guest Additions从6.0.10更新到6.0.12来解决了这个问题。