Python项目必须忽略__pycache__/、.pyc、venv/、.venv/、env/、.vscode/等自动生成文件,因其属本地运行时产物、不可跨平台复现且易引发协作冲突;已跟踪文件需用git rm -r --cached清理索引后.gitignore才生效。

VSCode 本身不配置 ignore,它只读取 .gitignore;Python 项目的忽略规则必须写在项目根目录的 .gitignore 文件里,且已跟踪的文件(比如早先 git add 过的 __pycache__)不会自动失效——得手动清理缓存。
Python 项目该忽略哪些文件?直接抄这个最小可用模板
在项目根目录新建 .gitignore,粘贴以下内容(已去重、去歧义、适配主流 Python 场景):
# Python 编译产物 __pycache__/ *.pyc *.pyo *.pyd <h1>虚拟环境(按你实际用的命名调整)</h1><p>venv/ .env/ .venv/ env/</p><h1>日志与数据文件(谨慎提交)</h1><p><em>.log </em>.csv *.xlsx</p><h1>VSCode 配置(除非团队强制统一)</h1><p>.vscode/</p>
注意:.vscode/ 后面的斜杠表示忽略整个目录;如果只写 .vscode,会匹配所有含该字符串的文件名(比如 my_vscode_config.txt),容易误伤。
为什么加了 __pycache__/,它还在 Git 提交列表里?
常见原因就两个:
-
__pycache__/目录或其中的.pyc文件曾被git add过,现在它属于「已跟踪文件」,.gitignore对它完全无效 - 你改的是子目录下的
.gitignore,但 Git 只认项目根目录(即git rev-parse --show-toplevel输出的路径)那个
验证是否还被跟踪:
git ls-files --cached | grep pycache
如果输出非空,说明仍在索引中。执行这一步清理:
生成周报:读取本机 Git 仓库最近一周的提交记录,按项目分类提炼总结,生成标准周报格式,通过微信推送并返回给用户。触发词:周报、weekly report、git总结、提交记录总结、工作周报。
git rm -r --cached __pycache__/
再 git add . + git commit,之后新生成的 __pycache__/ 就真被忽略了。
全局忽略 *.pyc 和 .DS_Store 怎么配?
全局规则适合编辑器临时文件、系统垃圾,不推荐放项目专用规则(如 venv/)。操作分三步:
- 运行
git config --global core.excludesfile ~/.gitignore_global(Windows 用户把~换成完整路径,如C:\Users\YourName\.gitignore_global) - 用 VSCode 打开该文件:
code ~/.gitignore_global - 追加这些行(注意
.DS_Store仅 macOS 有效):
*.pyc *.pyo *.swp .DS_Store
⚠️ 全局规则对已跟踪文件同样无效。如果你某个项目里 git status 还显示 .DS_Store,说明它早被提交过,得单独执行 git rm --cached .DS_Store。
git check-ignore 查不出问题?那大概率是路径没对上
这个命令只告诉你「如果文件未被跟踪,它会不会被忽略」,不反映真实状态。常用调试组合:
-
git check-ignore -v .vscode/settings.json:看哪条规则命中,路径必须写对(从根目录开始) -
git status --ignored:真正显示当前哪些文件被忽略且存在本地(这才是 VSCode 文件变灰的依据) -
git ls-files -i --exclude-standard:列出所有「被忽略但已被暂存」的文件——这种状态最危险,既不在工作区显眼,又悄悄参与提交
VSCode 的文件颜色、搜索过滤、提交面板里的文件列表,全部依赖 git status 的输出结果。Git 不刷新,VSCode 就不会变——别怀疑编辑器卡,先 git status 看一眼。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










