工作电脑指定目录执行git init报错.git: No such file or directory如何解决?
问题原因
- Windows系统下Git Bash显示的
drwxr-xr-x类权限是模拟的POSIX权限,和NTFS文件系统实际的访问控制列表(ACL)不互通,chmod命令默认在NTFS分区上无效,所以修改权限会返回Permission denied报错。 - Documents目录属于Windows系统默认的受控用户目录,Windows Defender的受控文件夹访问功能、企业设备的域组策略都会限制第三方应用向该路径下写入新文件/目录,
git init需要创建.git隐藏目录,被权限规则拦截后就会返回无此目录的报错。 - 管理员身份运行终端不生效的核心原因是域设备的管理员权限会被组策略裁剪,对用户目录下的受控路径没有修改ACL的权限,非域设备则是UAC权限继承限制导致的。
解决方案
按优先级从高到低依次尝试:
- 更换仓库存储路径
不要将Git仓库存放在Documents等系统受控目录下,直接在非系统盘(如D盘、E盘)根目录创建专门的代码存储目录,比如D:\git_projects,再在该目录下创建test_project子目录,重新执行git init即可,该方案可以完全规避系统目录的权限限制,是最稳定的解决方式。 - 调整Windows Defender规则(个人设备适用)
打开Windows安全中心→病毒和威胁防护→勒索软件防护→管理勒索软件防护,可直接关闭受控文件夹访问开关,或者将git.exe、git-bash.exe添加到允许的应用列表中。 - 修改目录NTFS权限
右键点击git_recap文件夹→选择「属性」→切换到「安全」标签页→点击「高级」→点击所有者后的「更改」按钮,将所有者修改为你的当前用户,勾选「替换子容器和对象的所有者」,确认后回到安全标签页,给你的用户账号添加「完全控制」权限,再勾选「使用可从此对象继承的权限项目替换所有子对象的权限项目」,确认生效后重试git init操作。 - 关闭Git权限校验(临时调试使用)
执行git config --global core.fileMode false关闭Git对文件权限的检查,再尝试初始化仓库。
内容的提问来源于stack exchange,提问作者kubjasp
相关产品推荐
相关产品推荐

