Git 所有文章传送门 |
---|
【Git】所有文章传送门 |
简述 / 前言
最近在 windows 上使用 Git 共享代码,发现 .gitignore 文件中标注的文件以及文件夹都不起作用,都会被 Git 追踪到,在网上也找了很多博客、也问了 Deepseek,发现都没有解决这个问题,最终发现 是创建的 .gitignore
文件格式有问题!
解决方案就是:使用 vscode 或者其它的编辑器来创建 .gitignore 文件
,这个时候就能解决这个问题了!下面讲讲 debug 的心路历程,不感兴趣的小伙伴可以跳过了~
1. 解决方案
使用 vscode 或者其它的编辑器来创建 .gitignore 文件,不要使用记事本 或者 命令行(echo "__pycache__/" >> .gitignore
) 创建 .gitignore 文件!
2. debug 过程(心路历程)
网上搜集到的解决方案以及 Deepseek 给出的解决方案基本上都是使用下面这个命令:
git rm -r --cached . # 清除所有缓存
git add . # 重新添加文件
git commit -m "强制应用.gitignore"
但是我也没有 add
过我的代码和文件夹里面的内容啊,不过想着试试的原则,还是使用的这个命令,结果毫无意外的出现的报错信息:
fatal: pathspec '.' did not match any files
然后 AI 又提示我检查以下信息:
.gitignore
文件必须位于仓库根目录,可以使用以下命令:git check-ignore -v <文件路径>
于是我观察我的根目录以及使用命令检查发现都没有问题,于是我想了想,会不会是我在它的父目录有 git
仓库,忘记删除了,于是从当前目录一直往上寻找,都发现没有问题,同时还用了 git 命令来查找有没有父目录干扰了现在的仓库:
git rev-parse --show-toplevel
一切输出都显示我的 .gitignore
文件位置正确,没有语法错误。
这是 Deepseek 又提示我,“若需统一忽略某些文件(如 IDE 配置文件),可创建全局规则:”:
git config --global core.excludesfile ~/.gitignore_global
echo ".DS_Store" >> ~/.gitignore_global
好的,按照它的要求发现还是没啥变化,反而我的 Git 全局配置信息多了一堆东西。
看着我的 Vscode,突然看到拓展插件那里,于是想着难道还和插件有关系吗?虽然我知道这应该和插件没什么关系,毕竟这些插件都只是显示或者可视化我的 Git 历史的,底层用的还是本机的 Git 系统,但是我就是还想试一下,把插件全部停用,重启 Vscode,发现并没有什么用。。。
想了半天,我想着难道是我的 Git 系统出 bug 了吗?好吧,想着古老的办法:“重装系统”,当然不是重装我的 windows 系统,而是卸载 Git 再重装 Git,折腾了十来分钟,发现新版本的 Git 和之前的没啥区别。
这是灵光一现,想着是不是 .gitignore 文件的格式有问题啊,因为我是在命令行创建 .gitignore 文件的:
echo "__pycache__/" >> .gitignore
这个代码在 linux
上面是可以使用的,但是在 Windows
上就会有问题!!!
原因可能是 Windows
在创建文件是使用的是 UTF-16 LE
格式(当然可能这是我的系统的问题,没仔细研究过),那么这就导致 Git 并没有识别到这是 .gitignore 文件,于是不管你怎么重装、怎么折腾,你都没办法解决,也许另存为 UTF-8
格式有用,但是我试了一下,发现还是没用。
最后就直接打算在 Vscode 中创建文件,这样应该能保证它是二进制文件了,没想到还真解决了 ^_^
继续写我的标注网页去咯,希望科研和实习一切顺利吧~