gpt4 book ai didi

git - git repo 中的文件变得无法访问

转载 作者:行者123 更新时间:2023-12-04 15:51:05 25 4
gpt4 key购买 nike

我正在我的 win 10 工作站和在 VMWare Workstation 上运行的 Linux VM 之间共享我的 git 目录(我保存所有 git 存储库的地方)。使用它一段时间后,我正在使用的脚本(称为 aws_utils.sh)变得无法访问。

我刚刚将一些更改保存到一个文件中,提交并推送了它们。然后我切换分支。我看到这条消息:

 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 下):

-????????? ? ?       ?       ?            ? aws_utils.sh

我无法对文件做任何事情:

ls -lh aws_utils.sh 
ls: cannot access 'aws_utils.sh': Permission denied

即使是 root,我什至无法列出文件:

ls -lh aws_utils.sh 
ls: cannot access 'aws_utils.sh': Permission denied
whoami
root

然后几分钟后文件就消失了,就好像我已经删除了它一样。执行 git pull 不会恢复文件。

我必须从字面上删除目录并再次克隆它才能取回文件。

我检查了 update_aws_list_rds 分支,在我再次克隆该目录后,我删除该目录之前消失的文件就在那里。

我使用的是 git 版本 2.17.1 和 VMware player 15。

发生了什么可能导致这种情况?我怎样才能阻止这个问题的发生?

最佳答案

这个:

I am sharing my git directory (where I keep all my git repos) between my win 10 workstation and a Linux VM running on VMWare Workstation.

几乎肯定是问题所在。

这种共享存储永远无法正常工作。1 它与 Git 的配合特别糟糕,Git 坚持对其 .git 进行完全、完整、100% 的控制目录。以这种方式使用 Git 有两条经验法则:

  1. 不要这样做。
  2. 如果您必须这样做,请确保至少从一侧以 100% 只读方式进行。

因为 Git 已经有了 它自己的 共享协议(protocol),所以很容易设置一个 VMWare 或 VirtualBox 系统,这样主机和客户端就只是两台不同的机器,有两个不同的 Git 存储库,它们使用git push 和/或 git pull 在它们之间传输对象。这样每个 Git 都可以完全、完整、100% 地控制自己的 .git 和相应的工作树,并且 确实 工作正常。


什么,从来没有?
好吧,几乎没有!

关于git - git repo 中的文件变得无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53853783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com