git 修改忽略文件
// 注释: 省略部分, 大家要相信绝对不是因为作者懒
git 介绍 (省略
git 为什么要有忽略文件 (省略
git .gitigonre
(省略
进入主题
问: 如何修改git 的忽略文件是哪一个?
答: 就是项目根目录下面的 .gitigonre
文件
问: 里面内容大致长什么样子?
# 答: 如下
.DS_Store
node_modules
/dist
package-lock.json
.gitignore
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
问: 修改规则是什么?
答: 如下
-
*
表示匹配任意字符; -
?
表示匹配一个字符; -
[]
表示匹配中括号内的单个字符:
- 可以使用
-
来表示连贯的字符,比如0-9
,a-z
,A-Z
等,[0-9]
表示匹配从0到9的单个字符。 - 可以使用
^
来表示除外,比如[^0-9]
表示除0到9之外的单个字符。
- 可以使用
-
/开始
ps:/dist
忽略整个文件夹 -
结束/
只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件 ps:bin/
忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件 -
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
-
**/foo: 忽略/foo, a/foo, a/b/foo等
-
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
-
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
-
*.log: 忽略所有 .log 文件
-
test.csproj: 忽略当前路径的 test.csproj 文件
为什么我修改了 .gitigonre
文件但是它没起到作用 ?
问: 为什么我修改了 .gitigonre
文件但是它没起到作用 ?
答: 缓存 gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的. 解决方案: 清理缓存
问: 如何清除缓存?
答: 你猜
问:…
// 答:如下
git rm -r --cached .
git add .
git commit -m 'dwpnb update .gitignore'