Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git状态无法与Virtualbox共享文件夹一起正常工作 细节 主机:macOS Sierra 来宾计算机:Ubuntu 64位16.04 LTS Virtualbox:5.1.14_Git_Macos_Ubuntu_Virtualbox - Fatal编程技术网

git状态无法与Virtualbox共享文件夹一起正常工作 细节 主机:macOS Sierra 来宾计算机:Ubuntu 64位16.04 LTS Virtualbox:5.1.14

git状态无法与Virtualbox共享文件夹一起正常工作 细节 主机:macOS Sierra 来宾计算机:Ubuntu 64位16.04 LTS Virtualbox:5.1.14,git,macos,ubuntu,virtualbox,Git,Macos,Ubuntu,Virtualbox,在主机上,存储库目前只是本地的。已初始化并有多个[local]提交,无需向远程推送 症状 在我的主机上,我有一个带有Git存储库的父文件夹。 我已与来宾计算机共享了parent文件夹,登录VM后,该文件夹位于/media/sf\u parent中 在终端中,我确实cd/media/sf\u parent此时内容似乎已被正确共享。 但是当我切换到repo文件夹时,我尝试执行git status,结果是存储库中的所有单个文件都被跟踪但都被修改了 奇怪的是,git日志提供了我在主机上所做的最后一次提交

在主机上,存储库目前只是本地的。已初始化并有多个[local]提交,无需向远程推送

症状 在我的主机上,我有一个带有Git存储库的
父文件夹。
我已与来宾计算机共享了
parent
文件夹,登录VM后,该文件夹位于
/media/sf\u parent

在终端中,我确实
cd/media/sf\u parent
此时内容似乎已被正确共享。 但是当我切换到
repo
文件夹时,我尝试执行
git status
,结果是存储库中的所有单个文件都被跟踪但都被修改了

奇怪的是,
git日志
提供了我在主机上所做的最后一次提交。 我试图用
ls
直观地比较存储库文件夹的两个“版本”,它们的“更新日期”和“文件大小”的值相同,但“所有者”、“组”和“权限”的值不同


有什么问题吗

也许Virtualbox不支持这一点


可能是文件系统级别与“所有者”和“权限”冲突?

linux用户管理是您的问题。您的vm不知道您的主机上的组/用户是什么/谁,反之亦然。可以通过为用户帐户使用单独的身份验证服务器来修复此问题,但该答案不适用于StackOverflow

解决这个问题的一个
git
方法是在共享文件夹上托管一个裸存储库,并在本地克隆到VM。根据需要进行推/拉更改

来自主机

cd shared/folder
mkdir <repo name>.git    #.git isn't really needed but is typical
cd <repo name>.git
git init --bare

cd <current repo location>
git remote add origin <path to repo.git folder>
git push --all
cd共享/文件夹
mkdir.git#。git不是真正需要的,而是典型的
cd.git
git init——裸
光盘
git远程添加源
git推——全部
来自虚拟机

cd ~
git clone <path to shared folder bare repo.git>
cd~
git克隆
确保在VM上设置用户名和电子邮件地址,以便将提交归因于正确的人(使用
git config

在我的帮助下,我能够解决这个问题,因为我怀疑并建议这个问题似乎与“用户权限”有关

在阅读了页面上的许多属性后,我测试了以下两个:

git config core.filemode false
git config core.ignorecase false
PS:默认情况下,它们都是
true


重新启动虚拟机并使其工作,现在工作树在主机和来宾之间同步。

刷新缓存到磁盘解决了我的问题:

echo 3 > /proc/sys/vm/drop_caches

如果已经在远程代码,我将不需要共享文件夹。。。但是你在第一行所说的与我的怀疑相符。谢谢。这似乎解决了我的共享git目录问题(在Windows和Linux之间),许多人都声称这是不可能的(比如)