# 创建.gitignore文件
# 使用git bash
- 根目录下右键选择“Git Bash Here”进入bash命令窗口;
- 输入
vim .gitignore命令,打开文件(没有文件会自动创建); - 按i键切换到编辑状态,输入规则,例如node_modules/,然后按Esc键退出编辑,输入:wq保存退出。
# 常用规则
/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件
!src/ 不过滤该文件夹
!*.zip 不过滤所有.zip文件
!/mtk/do.c 不过滤该文件
1
2
3
4
5
6
7
2
3
4
5
6
7
以上规则意思是:被过滤掉的文件就不会出现在你的GitHub库中了,当然本地库中还有,只是push的时候不会上传。
# git忽略已经提交的文件
https://github.com/wujunchuan/wujunchuan.github.io/issues/18#issue-213430690
已经提交的文件在.gitignore中添加是无效的
此时可以这样做:
git rm --cached {fileName}//删除本地缓存 更新本地gitignore文件,忽略目标文件(fileName) 最后git commit -m 'We don't need that fileName
注意,这种方法下somefiles只会在提交者的磁盘中保留,如果其他开发者拉取你的commit后,他们磁盘内的这些文件也会消失
# 白名单模式
# 忽略一切
*
# 把所有的文件夹重新包含进来
# 这是怎么做到的呢? 看第6条规则
!*/
# 把想要的文件或文件夹重新包含进来
# 这里为啥不能用: !src/* 呢,因为有斜杠时星号不能匹配斜杠,
# 导致src/里的子目录被忽略了,只包含进src/下的文件了
# 这里为啥不能用: !src/ 呢,因为以斜杠(/)结尾只能匹配目录
!src/**
!AndroidManifest.xml
# 如果不把所有文件夹包含进来,则需要先把res/目录包含进来才行
!res/drawable/**
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13