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 取消跟踪后,忽略规则才会生效。