Git忽略文件.gitignore

.gitignore介绍

在使用Git时,我们有时候并不需要将所有文件都保存到版本库中的,像一些依赖文件比较大的话,我们就可以不添加到版本库,减少占用仓库空间,比如Java下的target目录下的的.class文件。在Git的工作区根目录下有一个.gitignore文件,用于标记需要忽略添加到版本库的文件或目录。

一些常见忽略的例子:

  1. vscode自动创建的.vscode文件
  2. 前端安装依赖生成的巨大的node_modules文件夹
  3. Electron打包生成的build文件夹
  4. IDE 自动生成的.idea文件
  5. 隐私文件,例如密码配置文件之类。

.gitignore忽略规则

.gitignore文件内匹配到的文件在提交时会被忽略掉(忽略的文件不会被提交到仓库)

字符 备注
/ 表示目录
* 匹配多个字符
? 匹配单个字符
[] 包含单个字符的匹配列表
! 不匹配该目录或文件
# 注释,不做匹配
\ 转义,比如用于转义#,eg:#

实战

下面是一个Hexo的项目:

1
2
3
4
5
6
7
8
9
10
11
12
13
.DS_Store
Thumbs.db
*.log
node_modules/
public/
.deploy*/
.deploy_git*/
.idea
.vscode
themes/butterfly/.git
!source
**/test
#这是注释

规则解释

规则 备注
.DS_Store 忽略根目录的.DS_Store文件
.vscode 忽略根目录的.vscode文件
.deploy*/ 忽略根目录前缀为.deploy的文件夹所有内容
.deploy_git*/ 忽略根目录前缀为.deploy_git的文件夹所有内容
.idea 忽略根目录的.idea文件
*.log 忽略后缀为.log的全部文件
node_modules/ 忽略根目录下的node_modules文件夹所有文件
public/ 忽略根目录下的public文件夹所有文件
themes/butterfly/.git 忽略根目录下的themes/butterfly/.git文件夹所有文件
!source/ 根目录source文件夹不匹配,也就是source文件夹一定会提交到Git仓库
**/test 表示在根目录下的任何子目录为test的文件夹在提交时都会被忽略
#这是注释 单纯只是注释,没有任何语义