git - Git 命令在 vagrant 机器中没有 sudo 就无法工作
问题描述
我的流浪机器上有一个项目,我想将它推送到我的 github 存储库中。但是我不能在不使用的情况下添加对象sudo
。
- 我已经初始化了 git
vagrant@vagrant:/vagrant/testDir$ git init Initialized empty Git repository in /vagrant/testDir/.git/`
- 之后,如果我运行命令添加内容
然后我收到此错误:vagrant@vagrant:/vagrant/testDir$ git add .`
错误:将对象添加到存储库数据库 .git/objects 的权限不足
错误:file1:插入数据库失败
错误:无法索引文件 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 上运行的 vagrant 机器上有 ubuntu 18.04。Vagrant = 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
解决方案
这些是我为解决问题而采取的步骤:
- 我将 macOS 上的 virtualbox 从 6.0.8 r130520 降级到 6.0.4 r128413。
安装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:/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
.
推荐阅读
- powershell - 在 PowerShell 中的哈希表数组上使用 Measure-Object
- macos - 用于重新运行的 IntelliJ MacOS 密钥在编辑器视图中的映射方式不同
- mainframe - 使用 Rexx 在 PDS 中查找与给定字符串匹配的成员
- c - 将 matlab 加扰器和解扰器转换为 c 代码
- c# - 使用 openssl 将 C# AES 256 CBC 加密移植到 PHP
- spring - 来自其他服务数据的微服务数据验证
- three.js - 三个 js - .intersectObjects() 不适用于包含在 AR 中修改位置的精灵的组
- mysql - 如何根据他们在 SQL 中所属的表找到某一组人?
- entity-framework-core - 实体框架核心。对子实体进行排序,然后在内部对子实体进行排序?
- python - 在 Python 的主模块中处理文本和换行符