【发布时间】:2020-04-25 20:27:01
【问题描述】:
当使用 git clone 时,我收到“警告:以下路径发生冲突(例如,不区分大小写的文件系统上的区分大小写的路径),并且工作树中只有一个来自同一冲突组的路径”错误:
git clone -c core.symlinks=true ssh://root@11.22.33.44/etc c/Dev/GIT/mysite-etckeeper/
Cloning into 'c/Dev/GIT/mysite-etckeeper'...
remote: Counting objects: 1400, done.
remote: Compressing objects: 100% (1202/1202), done.
remote: Total 1400 (delta 195), reused 0 (delta 0)
Receiving objects: 100% (1400/1400), 3.71 MiB | 276.00 KiB/s, done.
Resolving deltas: 100% (195/195), done.
Checking out files: 100% (1154/1154), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
'HOSTNAME'
'hostname'
/etc # ls -la HOSTNAME
lrwxrwxrwx 1 root root 8 Mar 29 2017 HOSTNAME -> hostname
/etc # ls -la hostname
-rw-r--r-- 1 root root 18 Dec 21 2016 hostname
我该如何解决这个问题? 这个符号链接问题也会导致其他问题。
示例: 这是重现错误的示例存储库: https://github.com/klorinczi/test_dupe_filename
执行这个:
$ git clone -c core.symlinks=true https://github.com/klorinczi/test_dupe_filename
Cloning into 'test_dupe_filename_example'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 9 (delta 0), reused 9 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:
'HOSTNAME'
'hostname'
【问题讨论】:
-
在 Windows 10(自 1803 年起)上,您可以使目录 + 子目录区分大小写 stackoverflow.com/q/51591091/150978。或者,您安装并使用 Microsoft 提供的适用于 Linux 的 Windows 子系统 (WSL)。它使用您当前的硬盘文件系统提供了一个 Linux shell 环境,区分大小写。在那里你可以安装和使用 git。
-
这个问题有一个有趣的变种:它也发生在两个名为
filename和FileName.exe的文件上
标签: windows git symlink git-clone