git中忽略文件且不添加到.gitignore文件
前言
记一次添加 git
忽略文件不添加到 .gitignore
中
正文
写一些需求的时候,有时会随手创建一些 test.js
来跑一些代码
git add
然后 commit
提交的时候,很容易忘记把它排除掉
但是又不想因为这个文件污染 .gitignore
文件
这时候,就要使用另一种方式来添加要排除的文件
在 git
中,每个项目的根目录下都会有 .git
文件夹
由于这个文件夹是隐藏的,所以可能你会看不到
这时候就要设置资源管理器显示隐藏目录了(这里我使用的是window11)
找个 .git
文件夹之后,进入这个文件夹
在这个文件夹里面,找到 info/exclude
然后用记事本打开它,发现是个空文件
不过顶部有一些注释
1 | # git ls-files --others --exclude-from=.git/info/exclude |
可以看到,最后两行给了我们两个例子
*.[oa]
*~
在注释中提到这是 C
项目可能会用到的注释
当然,我是个切图仔,所以添加的一般是一些 test
的 js
文件
所以我们可以加一行
*.test.local.js
然后 ctrl + s
保存后关闭
回到 vscode
中,我们建一个 1.test.local.js
,随便写点内容
然后使用 git status
查看工作区的状态
发现此时工作区是干净的,也就是 git
没有对 1.test.local.js
这个文件进行追踪
当然目前这种添加是项目级别的
那我要是想全部的项目都排除某个文件,那要如何操作呢
这时候需要配置 git config
在 git config
中,我们可以指定全局的 .gitignore
文件
git-config
文档:git-config
进上面的地址然后 ctrl + f
搜索 core.excludesFile
,然后就可以找到下面这段内容
Specifies the pathname to the file that contains patterns to describe paths that are not meant to be tracked, in addition to
.gitignore
(per-directory) and.git/info/exclude
.
Defaults to$XDG_CONFIG_HOME/git/ignore
.
If$XDG_CONFIG_HOME
is either not set or empty,$HOME/.config/git/ignore
is used instead.
指定一个除了每个项目下的 .gitignore
和 .git/info/exclude
之外的不被 git
跟踪的文件
默认的位置为 $XDG_CONFIG_HOME/git/ignore
如果 $XDG_CONFIG_HOME
环境变量不存在,则使用 $HOME/.config/git/ignore
由于我电脑上 git
是在 window10
的时候装的,然后期间我又格盘装了 window11
所以 git
的环境变量基本没了,这里就试着指定一个绝对路径来试试
在控制台下输入 git config --global core.excludesFile E:\ignore
为全局的 git
配置 core.excludesFile
然后我们在 E:\ignore
随便写个规则
就写 index.js
,可恶的 index.js
今天定让你有来无回!
先通过 git config -l
看看当前的配置
没问题 E:\ignore
已经在配置中的
然后写个 index.js
,然后依然执行 git status
查看工作区的状态
一个干净的工作区,哈哈哈哈哈
后记
记得要去掉配置,不然代码没提交上去不关我事啊
删掉配置的指令 git config --global --unset core.excludesFile
然后再次 git status
, index.js
现在就可以被添加了