Git - 07. gitignore
1. 概述
- 开发的过程中, 无法保证项目文件夹下的所有东西, 都是想传到版本库的
- 比如 maven 项目的 target 目录
- 配置好之后, 使用
git add .
命令, 这些文件\目录也不会被 stage
2. 文件位置
-
位置
- 工作目录
-
文件名
.gitignore
-
注意
- 建议在创建成功之后, 把 .gitignore 文件也添加到 git 仓库中
- 不提交虽然可以生效, 但是每次 git status 时, 都会提示提 有未追踪的变更...
- 而且提交了也没有坏处不是吗?
3. 思路
- 编写文件
- 在 .gitignore 文件里指定规则
- 校验文件
- 执行
git add .
- git 对 untrack 和 changed 文件做匹配
- 如果符合 .gitignore 里的规则, 则不会做 stage 操作
- 执行
4. 语法
1. 注释
-
概述
- 注释不论在什么语言, 都是很重要的
-
语法
# 井号开头的行, 就是注释 # 如果真有文件是以 # 开头, 可以在前面加 \
2. 普通文件
-
概述
- 最基本的规则
-
配置
-
概述
- 直接输入文件名
-
约定
- 支持通配符
- 以 workspace 为 pwd
- / 开头的路径, 也会从 workspace 开始查找
-
例子
# 1. 单个文件 Desktop.ini # 2. 目录下的某个文件 build/file/file # 3. 某一类文件 *.map # 4. 某几类文件 *.py[co] # 5. 取反 !Desktop.ini
-
其他
- 取反的配置, 建议尽量不要冲突
-
3. 目录
-
概述
- 单个文件的配置, 效率太低
-
配置
-
概述
- 目录名匹配
-
约定
- /
- 如果过滤项不以 / 结尾, 则会被视为 文件
- 如果要过滤 目录, 建议以 / 结尾
- /
-
配置
# 1. 过滤目录 target/
-
4. 通配符
-
概述
- 单独讲下 通配符
-
通配符
*
- 匹配除了 / 之外的任意个字符
- ?
- 匹配除了 / 之外的一个字符
- []
- 匹配 [] 中的一个字符
- **
-
**/file
- 匹配项目里每个角落的 file
-
dir/**
- 匹配目录下的所有项目
-
a/**/b
- 匹配 a 下的 所有 b
- a/b
- a/x/b
- a/x/y/b
- 匹配 a 下的 所有 b
-
4. 检查
-
概述
- 检查 语法 与 忽略文件
-
命令
# 这个命令, 我目前没有成功过... > git check-ignore -v <fileToCheck>
ps
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出