GitHub 中数十亿不必要的文件
当我在寻找开源开发课程的简单作业时,我发现了一些非常令人不安的事情,这也是大量教学和实践的机会。
有些文件不需要放在 git 中
常识告诉我们,我们很少需要将生成的文件添加到 Git 仓库中。将它们保留在版本控制中毫无意义,因为它们可以再次生成。(例外情况可能是,如果生成过程需要很长时间,或者只能在特定的月相期间完成。)
我们的 git 仓库中也无需存储第三方库。我们只需存储依赖项及其所需版本的列表,然后下载并安装即可。(好吧,有些偏执狂可能会下载并保存他们使用的每个第三方库的副本,以确保它们永远不会消失,但你会发现我们并非在谈论这个。)
.gitignore
确保我们或其他人不会错误地将这些文件添加到 git 存储库的方法是创建一个名为 的文件.gitignore
,其中包含与我们想要从 git 中排除的文件匹配的模式,并将该.gitignore
文件添加到我们的存储库。git 将忽略这些文件。即使您运行 ,它们也不会显示出来git status
。
该文件的格式在.gitignore 文档.gitignore
中描述。
简而言之:
/output.txt
忽略output.txt
项目根目录中的文件。
output.txt
忽略output.txt
项目中的任何位置。(在根目录或任何子目录中)
*.txt
.txt
忽略所有带有扩展名的文件
venv
忽略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 中创建搜索吗?
更新
根据评论,更多内容如下:
.o
C 和 C++ 代码编译的结果文件:.o.class
Java代码编译结果文件:.class.pyc
文件是编译后的 Python 代码。通常存储在__pycache__
前面提到的.pyc文件夹中。
如何创建.gitignore文件?
后续帖子:
文章来源:https://dev.to/szabgab/billions-of-unnecessary-files-in-github-i85