在主机上,存储库目前只是本地的。初始化并有几个[本地]提交,没有一次推送到远程。
在我的主机上,我有parent
文件夹,上面有一个Git存储库。
我在guest虚拟机上共享了parent
文件夹,登录VM后文件夹位于/media/sf_parent
。
在终端中我cd /media/sf_parent
目前内容似乎已正确共享。
但是,当我更改为repo
文件夹时,我尝试执行git status
,输出就是跟踪存储库中的所有单个文件但已修改。
奇怪的是,git log
提供了我在主机上做的最后一次提交。
我尝试在视觉上将存储库文件夹的“版本”与ls
进行比较,它们与“更新日期”和“文件大小”的值相同,但对“所有者”,“组”和“权限”具有不同的值
可能是什么问题?
也许Virtualbox不支持这个?
可能是文件系统级别与“所有者”和“权限”的冲突?
答案 0 :(得分:3)
在git config的帮助下,我能够解决此问题,因为我怀疑并@g19fanatic建议此问题似乎与“用户权限”有关。
在阅读了页面上的很多属性后,我测试了这两个:
git config core.filemode false
git config core.ignorecase false
PS:默认为true
。
重新启动虚拟机并且工作正常,现在工作树在主机和来宾之间同步。
答案 1 :(得分:1)
将缓存刷新到磁盘解决了我的问题:
angY
答案 2 :(得分:0)
linux用户管理是你的问题。您的虚拟机不知道组/用户来自主机的是什么/用户,反之亦然。可以通过为用户帐户使用单独的身份验证服务器来修复,但该答案超出了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
来自vm
cd ~
git clone <path to shared folder bare repo.git>
确保在VM上设置用户名和电子邮件地址,以便将提交归因于正确的人(使用git config
)