事件起因
我在接手一个新项目时,要做这个项目的需求变更,然后我将这个项目从公司的gitlab上拉下来,但是发现刚拉下来的项目就有很多文件没有纳入git管理和一些文件变更,但是这个是刚拉下来的文件,我没有做任何的操作
尝试切换分支也失败,就是因为识别到本地有内容更改没有提交
我尝试将本地所有有更改的文件进行回滚,但是又报错filename too long
后面发现其实在使用git进行拉去项目代码时就报了这个错误的
另外提一句我接手的这个项目是gradle的环境,不是常规的maven环境(虽然跟这次拉去出问题应该没啥关系,但是提一句,免得后面我忘了)
环境和工具
环境:gradle7.5
java:jdk1.8开源版本
idea:2023.3.1
操作过程
因为我搜索了相关的问题,在网上也看到了类似的情况,有说这个路径名太长了的,chat_gpt也说了可以找一个更短的文件夹路径名,然后直接拉去的,我也尝试了一下,直接拉取到桌面上,然后直接就拉取成功了
然后我单独创建了两个文件夹来测试(我甚至怀疑跟文件夹的下划线“_”和“-”有关,下图可以看到我在使用不同的文件夹路径来尝试,但最后证明跟这个没有关系,更多的还是路径问题):
最后还找到了一种解决办法:给git的拉取命令加上 -c core.longpaths=true
其实就是git拉取代码时的长路径的解决办法
解决办法
总结一下就是有两种办法解决该问题:
1、你创建的拉取代码的文件夹深了一点,当然可能你只创建了两层或者三层,但是项目里面的路径太长了,然后再加上你外部的路径,就长了,导致的,你可以直接创建在桌面拉去,或者直接在c盘或者d盘第一层目录下拉取代码,正确拉取下来后再把你的代码移动你想要存放的位置
2、就是不管你的路径有多长,可以通过调整git命令的参数来拉取代码,允许长路径进行拉取代码
git clone <git项目地址> -c core.longpaths=true
或者
git -c core.longpaths=true clone <git项目地址>
均可(先后顺序可忽略)
参考内容:
https://blog.csdn.net/yuchenai/article/details/124187443
chat-gpt
结束语
若是对你有所帮助的话,希望能获得你的 点赞、评论、收藏,这将是对我很大的鼓励!!! 这对我真的很重要!!!
蟹蟹٩(‘ω’)و