gitignore忽略目录基本使用笔记
.gitignore 基本使用笔记
1. 什么是 .gitignore
.gitignore 是 Git 的忽略规则文件,用于告诉 Git 哪些文件或目录不需要加入版本控制。
创建方式:
- 在 Git 仓库根目录创建一个名为
.gitignore的文件。 - 一个仓库通常只需要一个根目录下的
.gitignore(也可以在子目录创建,规则仅作用于该目录及其子目录)。
2. 基本规则
忽略目录
dist/
build/
logs/
忽略指定目录
client/dist/
client/history_data/
忽略单个文件
config.ini
client/main.spec
忽略指定类型文件
*.log
*.tmp
*.zip
*.pyc
忽略所有同名目录
__pycache__/
node_modules/
3. 通配符
*:匹配任意字符(不包含路径分隔符)
*.log
*.txt
?:匹配任意一个字符
file?.txt
**:匹配任意层级目录
**/temp/
4. 排除(取消忽略)
使用 ! 将已忽略的文件重新加入跟踪。
*.log
!important.log
5. 注释
使用 # 编写注释。
# Python缓存
__pycache__/# 打包目录
dist/
6. 路径规则
推荐统一使用 / 作为路径分隔符,不要使用 Windows 的 \。
正确:
client/dist/
不推荐:
client\dist\
7. 已提交的文件不会生效
.gitignore 只能忽略未被 Git 跟踪的文件。
如果文件已经提交,需要先取消跟踪:
git rm -r --cached <目录>
git rm --cached <文件>
然后重新提交:
git add .
git commit -m "Update .gitignore"
8. 查看是否生效
查看当前状态:
git status
查看某个文件是否被忽略以及命中的规则:
git check-ignore -v <文件路径>
例如:
git check-ignore -v client/history_data/data.json
9. 常见 Python 项目 .gitignore
# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
venv/# IDE
.vscode/
.idea/# 构建目录
build/
dist/# 日志
*.log# 环境变量
.env
10. 常见 Node.js 项目 .gitignore
node_modules/
dist/
build/
coverage/
.env
11. 常用规则总结
| 写法 | 含义 |
|---|---|
dist/ |
忽略 dist 目录 |
client/dist/ |
忽略 client 下的 dist 目录 |
*.log |
忽略所有 .log 文件 |
config.ini |
忽略指定文件 |
__pycache__/ |
忽略所有 pycache 目录 |
!README.md |
不忽略 README.md |
# 注释 |
注释说明 |
注意事项
.gitignore推荐放在仓库根目录。- 目录建议以
/结尾,更明确。 - Git 路径统一使用
/,与操作系统无关。 - 修改
.gitignore后,仅对未跟踪的文件生效。 - 已跟踪文件需使用
git rm --cached取消跟踪后,忽略规则才会生效。