当我尝试使用 Cygwin 的 Git 2.7.0 克隆项目时,我遇到了一些与权限相关的问题。也就是说,每次我尝试运行克隆项目的可执行文件之一时,我都会收到下一个错误:
Windows 无法访问指定的设备、路径或文件。您可能没有访问该项目的适当权限。
如果我改用 Cygwin Git(Atlassian SourceTree 中包含的 Git),项目将被“正确”克隆,并且我不会遇到任何问题。下面我列出了 Git 的全局配置:
Cygwin 的 Git (2.7.0):
[email protected] /cdn-cgi/l/email-protection
user.name=foo
alias.default=!git add -A && git commit -m 'default commit'
core.filemode=false
core.autocrlf=true
SourceTree的Git(Git版本1.9.5.msysgit.0):
user.name=foo
[email protected] /cdn-cgi/l/email-protection
core.autocrlf=true
core.filemode=false
如何正确配置 Cygwin 的 Git(或其他东西)以避免出现此类权限问题?
这让我想起Alexpux/MSYS2-packages 问题 222 https://github.com/Alexpux/MSYS2-packages/issues/222#issuecomment-94114481:
在 Linux 上,如果要执行文件,则该文件必须具有正确的权限。
默认情况下,出于安全原因,触摸的文件不会有此内容。
然而 Windows 对此有一个错误的看法,因为使用以下命令创建的文件
新建>文本文档自动具有执行权限。
因此,在这种情况下似乎发生的是,无论谁创建了批处理文件,都是在 MSYS2 环境中执行的,因此正确地缺少执行
权限。
他们没有做的是chmod +x
正确提供这些文件
执行权限,如果文件是使用以下命令创建的,则会执行此操作
Windows 本机工具。
那么一个简单的chmod +x
应该足够了。
进而,使用 Git 2.9.1 或更高版本 https://stackoverflow.com/a/38285462/6309:
git add --chmod=+x -- afile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)