Windows系统git clone Linux内核git仓库的系列问题

        当我们在Windows系统的电脑上试图拉取Linux内核git仓库时,由于Windows和Linux的不兼容会遇到很多问题。踩过好几个坑后,我将针对遇到的问题提出解决方案,并给出完成这项工作的避雷方式。

        Linux内核git仓库:

        由于以下有些配置仅对新创建子文件夹生效,为避免重复clone花费时间和流量,建议完成下述配置后再进行git clone操作。

           第一个问题是Linux和Windows的默认大小写敏感设定不同导致的。Linux里大小写敏感,Windows则不然。因此我们需要通过手动设置本机Windows使其大小写敏感。

问题一:
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:
……

解决方案:
当前git文件夹执行:
git config core.ignorecase false
以管理员模式运行powershell或cmd执行:
fsutil file SetCaseSensitiveInfo "C:\YourProject" enable

        按上述解决方法运行后,YourProject下可以同时创建A.txt和a.txt,大小写敏感。但你会发现,假如此前YourProject下有其他文件夹如Folder,Folder下却会仍然不能同时创建A.txt和a.txt。这是因为上述配置只对对应目录下的新创建文件夹有效。你可以在YourProject下创建新文件夹Folder2,可以看到其下是可以同时创建A.txt和a.txt的。如果运行上述解决方法不成功,请参照文章http://t.csdn.cn/7jdgV 检查本机配置,如是否安装wsl等。

        问题二是由Windows敏感词导致的aux相关文件无法克隆或reset。

问题二:
error: invalid path 'drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c'
error: invalid path 'drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h'
error: invalid path 'include/soc/arc/aux.h'
或者
error: unable to create file drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c: No such file or directory
error: unable to create file drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h: No such file or directory
error: unable to create file include/soc/arc/aux.h: No such file or directory

解决方案:
git config core.protectNTFS false
git config --global core.protectNTFS false

       直接在文件资源管理器对应路径位置创建文件是不可行的,因为aux被认作是windows音频关键字。

        解决方法是:开启wsl,在wsl模式下用vim等方式创建相关文件,并从线上github复制下来对应文件内容粘贴进去即可。或者可以VSCode在wsl模式下打开Linux文件夹,就可以通过vsc正常地在对应位置创建、编辑文件。

        问题三:克隆后由于上述原因报错为clone succeed but checkout failed,文件夹里为空或只有一个隐藏的.git 。

        此时可以通过完成上述解决问题的配置后尝试通过git reset -hard HEAD ./来恢复所有文件。如仍有相关问题,可按照问题一二处理方式尝试解决。

        综合以上问题和解决方式, 建议Windows用户首先在目标父目录执行git config解决方案和fsutil解决方案,随后在开启了wsl的cmd窗口里执行git clone命令,从而避免如大小写冲突的问题。

        这叫什么?可能是叫预防胜于补救吧哈哈哈。

你可能感兴趣的:(git,git,linux,运维)