GitHub 中数十亿不必要的文件

2025-06-07

GitHub 中数十亿不必要的文件

当我在寻找开源开发课程的简单作业时,我发现了一些非常令人不安的事情,这也是大量教学和实践的机会。

有些文件不需要放在 git 中

常识告诉我们,我们很少需要将生成的文件添加到 Git 仓库中。将它们保留在版本控制中毫无意义,因为它们可以再次生成。(例外情况可能是,如果生成过程需要很长时间,或者只能在特定的月相期间完成。)

我们的 git 仓库中也无需存储第三方库。我们只需存储依赖项及其所需版本的列表,然后下载并安装即可。(好吧,有些偏执狂可能会下载并保存他们使用的每个第三方库的副本,以确保它们永远不会消失,但你会发现我们并非在谈论这个。)

.gitignore

确保我们或其他人不会错误地将这些文件添加到 git 存储库的方法是创建一个名为 的文件.gitignore,其中包含与我们想要从 git 中排除的文件匹配的模式,并将该.gitignore文件添加到我们的存储库。git 将忽略这些文件。即使您运行 ,它们也不会显示出来git status

该文件的格式在.gitignore 文档.gitignore中描述

简而言之:

/output.txt
Enter fullscreen mode Exit fullscreen mode

忽略output.txt项目根目录中的文件。

output.txt
Enter fullscreen mode Exit fullscreen mode

忽略output.txt项目中的任何位置。(在根目录或任何子目录中)

*.txt
Enter fullscreen mode Exit fullscreen mode

.txt忽略所有带有扩展名的文件

venv
Enter fullscreen mode Exit fullscreen mode

忽略venv项目中任何地方的文件夹。

还有更多。查看.gitignore 文档

不了解 .gitignore

显然很多使用 git 和 GitHub 的人不知道.gitignore

证据:

Python开发者使用名为 的文件夹virtualenv来方便在不同项目中使用不同的依赖项。他们创建项目时,virtualenv通常会将所有第三方库都安装在名为 的文件夹中venv。我们不应该将此文件夹添加到 git 中。然而:

本次搜索venv有 4.52 亿次点击

类似地,NodeJS开发人员会将依赖项安装在名为 的文件夹中node_modules。搜索“node_modules”后,有 20 亿条回复。

最后,如果你在macOSFinder上使用这些应用程序并打开一个文件夹,它会创建一个名为 的空文件 (!) 。这个文件实际上在任何地方都不需要。然而,我在 GitHub 上看到了很多它的副本。遗憾的是,到目前为止,我还不知道如何搜索它们。我找到的最接近的方法是搜索.DS_Store

误解 .gitignore

很多人对 .gitignore 的工作原理存在误解。我能理解,因为解释的措辞有点含糊。我们通常说的是

如果您想确保 git 将忽略该__pycache__文件夹,那么您需要将其放入.gitignore

更好的说法是这样的:

如果您想确保 git 将忽略该__pycache__文件夹,那么您需要将其名称放入文件中.gitignore

如果没有这个,人们最终可能会创建一个名为的文件夹.gitignore,并将所有__pycache__文件夹移动到这个文件夹。你可以在这个搜索.gitignore中看到

帮助

您能否建议 git 中其他应忽略的不必要文件的常见情况?

.DS_store您能帮我在 GitHub 中创建搜索吗?

更新

根据评论,更多内容如下:

  • .oC 和 C++ 代码编译的结果文件:.o
  • .classJava代码编译结果文件:.class
  • .pyc文件是编译后的 Python 代码。通常存储在__pycache__前面提到的.pyc文件夹中。

如何创建.gitignore文件?

后续帖子:

文章来源:https://dev.to/szabgab/billions-of-unnecessary-files-in-github-i85
PREV
100天CSS艺术学习 - 完成!🎉
NEXT
如何正确关闭端口? Mac OS Windows Linux