.gitignore介绍
在使用Git时,我们有时候并不需要将所有文件都保存到版本库中的,像一些依赖文件比较大的话,我们就可以不添加到版本库,减少占用仓库空间,比如Java下的target目录下的的.class文件。在Git的工作区根目录下有一个.gitignore文件,用于标记需要忽略添加到版本库的文件或目录。
一些常见忽略的例子:
vscode自动创建的.vscode文件
前端安装依赖生成的巨大的node_modules文件夹
Electron打包生成的build文件夹
IDE 自动生成的.idea文件
隐私文件,例如密码配置文件之类。
.gitignore忽略规则
.gitignore文件内匹配到的文件在提交时会被忽略掉(忽略的文件不会被提交到仓库)
字符 | 备注 |
|---|---|
/ | 表示目录 |
* | 匹配多个字符 |
? | 匹配单个字符 |
[] | 包含单个字符的匹配列表 |
! | 不匹配该目录或文件 |
# | 注释,不做匹配 |
\ | 转义,比如用于转义#,eg:# |
实战
下面是一个Hexo的项目:
yaml 复制
YAML
.DS_StoreThumbs.db*.lognode_modules/public/.deploy*/.deploy_git*/.idea.vscodethemes/butterfly/.git!source**/test#这是注释规则解释
规则 | 备注 |
|---|---|
.DS_Store | 忽略根目录的 |
.vscode | 忽略根目录的 |
.deploy*/ | 忽略根目录前缀为 |
.deploy_git*/ | 忽略根目录前缀为 |
.idea | 忽略根目录的 |
*.log | 忽略后缀为 |
node_modules/ | 忽略根目录下的node_modules文件夹所有文件 |
public/ | 忽略根目录下的public文件夹所有文件 |
themes/butterfly/.git | 忽略根目录下的themes/butterfly/.git文件夹所有文件 |
!source/ | 根目录source文件夹不匹配,也就是source文件夹一定会提交到Git仓库 |
**/test | 表示在根目录下的任何子目录为test的文件夹在提交时都会被忽略 |
#这是注释 | 单纯只是注释,没有任何语义 |


