从git仓库中移除__pycache__文件夹

5
我该如何使用 .gitignore 删除存储库中所有的 __pycache__ 子目录?
2个回答

9
你无法从已有的提交中删除文件:这些提交将永久被冻结。但你可以确保在以后的提交中不再添加新文件。只需使用git rm -r --cached __pycache__命令立即删除这些文件,并在.gitignore文件中列出__pycache____pycache__/(如果需要,创建该.gitignore文件)。对于每个__pycache__目录都要执行此操作;使用你的操作系统工具找到它们(例如:find . -name __pycache__ -type d)。然后运行git add .gitignoregit commit来提交删除操作。
请注意,任何人从任何一个存在这些文件的提交处移动到不存在这些文件的提交处时,如果 Git 能够做到,他们的整个__pycache__目录都将被删除;至少会删除被提交并可删除的任何缓存文件。因此,上述命令中的 --cached 只是为了让你通过避免删除缓存编译文件来加快速度。其他人将不得不重建它们的缓存。
如果您需要在一个新的、不同的代码库中,从一开始就没有将__pycache__文件提交,可以使用git filter-branch(现已弃用)或新的git filter-repo(尚未与 Git 一起分发)。或者,查看任何这些现有问题和它们的答案,你应该在提问之前就已经找到了:

首先,删除所有的__pycache__文件,使用以下命令:$ find . -name pycache -exec git rm -r --cached {} ; - Mohamed Beltagy

1

将此添加到.gitignore中,以后您还可以使用这个方便的生成器

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接