git repo中的文件变得不可访问
我在win 10工作站和在VMWare工作站上运行的Linux虚拟机之间共享我的git目录(保存所有git repo的地方)。使用它一段时间后,我正在使用的脚本(称为aws_utils.sh)变得不可访问 我只是将一些更改保存到一个文件中,提交并推送它们。然后我切换分支。我看到这样的信息:git repo中的文件变得不可访问,git,vmware,vmware-workstation,Git,Vmware,Vmware Workstation,我在win 10工作站和在VMWare工作站上运行的Linux虚拟机之间共享我的git目录(保存所有git repo的地方)。使用它一段时间后,我正在使用的脚本(称为aws_utils.sh)变得不可访问 我只是将一些更改保存到一个文件中,提交并推送它们。然后我切换分支。我看到这样的信息: git checkout update_aws_list_rds error: unable to create file aws_utils.sh: Permission denied Switched
git checkout update_aws_list_rds
error: unable to create file aws_utils.sh: Permission denied
Switched to branch 'update_aws_list_rds'
D aws_utils.sh
我没有删除这个文件。这是我的主要文件,我不会那样做
然后我看一下该文件的权限,它们是这样的(在linux下):
我对这个文件无能为力:
ls -lh aws_utils.sh
ls: cannot access 'aws_utils.sh': Permission denied
ls -lh aws_utils.sh
ls: cannot access 'aws_utils.sh': Permission denied
whoami
root
即使是root用户,我也无法列出文件:
ls -lh aws_utils.sh
ls: cannot access 'aws_utils.sh': Permission denied
ls -lh aws_utils.sh
ls: cannot access 'aws_utils.sh': Permission denied
whoami
root
几分钟后,文件就消失了,就好像我把它删除了一样。而且执行git拉取不会恢复文件
我必须从字面上删除目录,并再次克隆它,以取回文件
我签入update_aws_list_rds分支,在我再次克隆目录后,删除目录之前丢失的文件就在那里了
我使用的是git版本2.17.1和VMware player 15
到底是什么导致了这一切?如何阻止此问题的发生?此:
我在win 10工作站和在VMWare工作站上运行的Linux虚拟机之间共享我的git目录(保存所有git repo的地方)
这几乎肯定是问题所在
这种共享存储永远不会正常工作。1它在Git上的表现尤其糟糕,Git坚持对其.Git
目录进行完全、完全、100%的控制。以这种方式使用Git有两条经验法则:
Git push
和/或Git pull
在它们之间传输对象。这样,每个Git都可以完全、完整、100%地控制它自己的.Git
和相应的工作树,而且工作正常
什么,从来没有?
嗯,几乎从来没有 好的,谢谢。我只是停止使用我的共享存储用于此目的。我实际上并不仅仅是在分享git文件夹。我在共享一个父文件夹,其中有很多其他我共享的东西,git目录正好在那里。我刚刚把git文件夹从那里移到了windows机器和linux虚拟机上的本地文件夹中。这应该可以解决这个问题。我在我的Mac电脑上有一个类似的Linux虚拟机设置,这真的很烦人,因为MacOS和Linux应该能够比Windows和Linux更好地协同工作。我使用一些共享文件夹偶尔进行文件传输,但为了可靠性,我必须将几乎所有的Linux端数据保留在非共享区域。