windows上下载github上的linux内核项目遇到的问题

问题一:clone的时候报错

Cloning into 'G:\github\linux'...

POST git-upload-pack (gzip 27925 to 14032 bytes)

remote: Counting objects: 6012062, done.

remote: Compressing objects: 100% (1031/1031), done.

remote: Total 6012062 (delta 893), reused 342 (delta 342), pack-reused 6010689

Receiving objects: 100% (6012062/6012062), 2.06 GiB | 3.62 MiB/s, done.

Resolving deltas: 100% (4997555/4997555), done.

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

Checking out files: 100% (61359/61359), done.

fatal: unable to checkout working tree

warning: Clone succeeded, but checkout failed.

You can inspect what was checked out with 'git status'

and retry the checkout with 'git checkout -f HEAD'

一看文件目录,一大堆的红叉叉,git status查看有一大堆的修改,可是我啥也没动啊,郁闷。于是按照建议执行了 git

checkout -f HEAD。

问题二:执行git checkout -f HEAD后还有文件修改

执行git checkout -f HEAD后,红叉叉没了,但还有几个红叹号。

git status查看

搞了好几个钟头还是这个样子,郁闷死了。最后发现原来是linux和windows不兼容的原因。

windows上有些文件名是无法创建文件的,比如aux,com1等,这些是系统保留的设备名。这就是第一个问题为什么clone失败的原因。

第二问题的原因是linux文件名区分大小写,而windows不区分。而linux内核工程里恰好有一些只有大小写不同的文件,在windows下只能创建其中的一个。这导致了git工具的错误。如果把这个文件删除了,git status查看你会发现少了两个大小写不同的文件。

解决方法就是修改文件名。但是这样怎么提交代码呢?还有一直有红叹号看着真不爽。最后得出的结论是想要参与linux内核的开发,还是要用linux操作系统啊,这是不是就是大牛创建这些不兼容文件的原因呢。

相关推荐
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(82):ReasoningBank——从成功与失败经验中沉淀可复用的推理记忆
论文阅读·人工智能·学习·开源·github
EatFan2 小时前
GitHub Trending 三连观察:AI 编码智能体进入“周边生态”竞争阶段
人工智能·驱动开发·github·mcp·superpowers·github trending·spec kit
ShineWinsu3 小时前
对于Redis:Redis的认识以及分布式系统的解析
linux·数据库·c++·redis·缓存·消息队列·分布式架构
Zenova EdgeOS3 小时前
Linux IO 监测:iotop 工业边缘排障实战
linux·边缘计算·工业网关·iotop·排障
Fcy6483 小时前
Linux下 传输层协议UDP详解(含底层源码解析)
linux·运维·udp
青梅味猪大肠3 小时前
【操作系统-24】双标志先检查
linux·运维·服务器
xiaoye-duck4 小时前
《Linux 网络编程》深入理解五种 IO 模型:从 IO 本质到非阻塞 IO 实战
linux·网络
程序员-Benothing4 小时前
Linux内核与模块管理:uname、lsmod、modprobe、sysct
linux·运维·数据库
微三云生态系统架构师-彭丹4 小时前
智慧物业工单智能派单算法:技能匹配与位置负载均衡设计
运维·负载均衡·物业管理·调度算法·工单系统·智能派单·智慧物业
嵌入式小能手4 小时前
飞凌嵌入式ElfBoard-Shell编程应用实例-使用WiFi拨号上网
linux·服务器·网络