在git中创建符号链接时被拒绝权限
在使用git创建符号链接时,可能会遇到“Permission denied”错误。这个问题的出现原因是因为在Windows平台上,特别是在MINGW-MSYS中,ln命令存在一些兼容性问题。解决这个问题的方法是使用一个在Windows上“做正确事情”的ln版本。可以参考这个链接:Git Bash Shell fails to create symbolic links。
通过使用这个工具:schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html,我成功地创建了符号链接。为什么能成功呢?因为NTFS在Windows上本身就提供了许多不同类型的链接。
问题:在Git中创建符号链接时出现“Permission denied”错误的原因以及解决方法
如果你正在使用Git for Windows SDK,你可以通过运行以下命令使用pacman软件包管理器来安装winln:pacman -Su winln
然后你可以运行winln -s target link命令,它将检查你是否拥有SeCreateSymbolicLinkPrivilege权限,否则将失败。这相当于运行Windows的mklink.exe。
我很惊讶Git for Windows没有提供winln命令,而是提供了一个没有告诉你它执行了拷贝操作的ln命令。
解决方法:在Git for Windows中创建符号链接时出现“Permission denied”错误的原因是由于缺乏SeCreateSymbolicLinkPrivilege权限。为了解决这个问题,可以通过安装winln并运行winln -s target link命令来创建符号链接。具体步骤如下:
1. 如果你正在使用Git for Windows SDK,可以使用pacman软件包管理器来安装winln。运行以下命令安装winln:
pacman -Su winln
2. 安装完成后,你可以运行winln -s target link命令来创建符号链接。该命令会检查你是否拥有SeCreateSymbolicLinkPrivilege权限,如果没有则会失败。该命令的作用相当于运行Windows的mklink.exe。示例命令如下:
winln -s target link
通过以上步骤,你可以成功创建符号链接并解决“Permission denied”错误。
值得注意的是,Git for Windows并没有提供winln命令,而是提供了一个名为ln的命令。然而,这个命令执行的是拷贝操作,并没有告诉你它执行了拷贝操作。因此,为了创建符号链接,请使用winln命令而不是ln命令。
在Windows上,我遇到了创建符号链接时出现"Permission denied"的问题,我采取了以下几个步骤来解决这个问题:
1. 通过修改git配置文件来启用core.symlinks:
执行命令 `git config --edit`,然后修改配置文件,在文件中添加以下内容:
[core]
symlinks = true
2. 以管理员身份打开Git Bash,并执行git checkout命令。
这样做对我起到了作用,希望能对其他人有所帮助。
这是对我有效的答案。关键部分是以管理员身份运行git,因为我已经启用了core.symlinks。
对我来说,以管理员身份运行Git Bash解决了问题。我的git配置中没有提到`symlinks`。