- 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)