- Objective:
- Breadcrumb:
# 概念阐释
`.gitignore`文件告git不要跟踪哪些文件,用来保护敏感信息。GitHub提供了gitignore文件的模板,可以下载使用。
# 实例
#### 常见敏感信息
- 包含 API 或密钥的配置文件,例如 `.env`
- 已[[编译]]的二进制文件或生产目录,例如 `build `或 `dist`
- 日志文件
```bash
# Ignore all log files
*.log
```
- 从软件包管理器(例如 node_modules文件夹)下载的依赖项
```bash
node_modules/
```
- 系统文件,例如 Windows 上的 thumbs.db 或 macOS 上的 .DS_Store
```bash
.DS_Store
```
#### Docusaurus
```bash
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.env
```
忽略文件
```bash
/file.md
```
# 相关内容
#### 创建文件
在项目的根目录中
```bash
touch .gitignore
```
#### 忽略文件夹
```bash
temp/
```
#### 通配符
- `*.html`:忽略所有以html结尾的文件
- `example*`:忽略所有以example开头的文件
- `index* !public/index.css`: 先忽略所有index开头的文件,然后**不**忽略其中的index.css文件
- `[a-z]` `[A-Z]` `[0-9]`:忽略一组字符范围,比如`index.[a-i]`,忽略`.html`和`.css`,但不会忽略`.js`
- `**` 双星号会匹配项目中的所有文件夹,包括零级别(也就是根目录);
- `**/temp/*.log` 项目中任何目录下的temp文件夹中的所有log文件都会被忽略;
- `src/v[1-3]/**/*.log` src文件夹中的v1、v2、v3文件夹中的,所有文件夹中的,所有log文件
#### 已经上传的文件
如果文件已经上传,需要先移除
```
git rm --cached 文件名
```
# 参考资料
- [codecademy](https://www.codecademy.com/journeys/full-stack-engineer/paths/fscj-22-front-end-development/tracks/fscj-22-git-and-github-part-ii/modules/wdcp-22-best-practices-for-github-repositories-e4ea0f25-b3dd-46bb-a2a3-3f7aa9b2c5da/articles/using-a-gitignore-file-in-your-github-repository)
- [GitHub’s gitignore 文件模版](https://github.com/github/gitignore)