发布于 2026-01-06 7 阅读
0

请不要提交 .env 文件,这会在提交历史中留下污点。.gitignore 是你最好的朋友。我们都会犯错。

请不要提交 .env 文件

提交历史记录中的污点

.gitignore是你最好的朋友

我们都会犯错。

不得不承认,.dpg.env文件真是太棒了。它们语法简洁易读,可以将所有必要的配置信息存储在一个文件中。不仅如此,它们还守护着我们这些 Web 开发者最深层的秘密。它们确保我们珍贵的 API 密钥和数据库密码都保存在本地,免受窥探。由于 .dpg 文件在我们的代码库中扮演着如此重要的角色,社区也一直提醒我们永远不要共享它们.env;要像政府对待机密信息一样对待它们。

在开源社区,这一点尤为重要,因为每个人都会互相共享、复制和复用代码。很多人经历过不小心提交并推送文件的尴尬时刻。就我个人而言,我还没.env犯过这种错误,但我想我的命运似乎已经注定了。

在聚会上,开发者们闲聊“你那次成功发布好东西的经历”固然有趣,但令人担忧的是,这已经成为网络开发中常见的话题,甚至可能是一种必经之路。

提交历史记录中的污点

在 GitHub 上快速搜索一下就会发现,仍然有不少人没收到通知。搜索结果中偶尔会出现一些提交标题。查看提交内容后,果然发现了他们宝贵的 API 密钥add .envremove .env数据库密码。看着他们像小孩子犯错后懊悔不已一样撤销自己的更改,真是让人哭笑不得。

更令人担忧的是,还有一些人没有回滚他们的提交。这些.env文件仍然存在于他们的代码仓库中。我们完全可以确定,这些文件可能是他们日常使用的真实 API 密钥和数据库密码。更糟糕的是,按最近提交次数排序的搜索结果显示,这些提交非常普遍且频繁。

直接删除工作树中的文件的问题.env在于,Git 会记录仓库中的所有提交,即使是最早的提交也不例外。除非使用了巧妙的技巧(稍后会详细介绍),否则提交该.env文件将永远在提交历史记录中留下污点。毕竟,这正是版本控制系统的职责所在:保留变更历史记录,即使是错误的变更。

话虽如此,如何在存储库中处理敏感数据呢?

.gitignore是你最好的朋友

在您的代码仓库中添加.gitignore文件是防止此类问题的第一道防线。正确且明确地指定要忽略的文件和目录,是防止敏感数据泄露到公共代码仓库并被他人窥探的可靠方法。

GitHubgitignore.io为特定语言和环境提供了通用.gitignore模板。大多数情况下,这些模板足以满足您的需求。

如果仓库中已经提交了敏感数据,GitHub 提供了一个非常实用(但略显繁琐)的指南,教你如何从提交历史记录中清除文件。“繁琐”并非坏事。在安全问题上,再怎么小心也不为过。😉

我们都会犯错。

我们都是普通人,没有人是完美的。犯错是生活的一部分,事实上,这可能是我们每天都必须面对的最重要的现实之一。不经历这些错误,我们就永远无法成为更优秀的开发者。学习的很大一部分不在于肯定成功,而在于认识到失败的“是什么”和“为什么”。

没错,提交.env文件是个严重的错误。没错,这会给你的应用带来严重的安全隐患。没错,公司会遭受重大损失。没错,清理提交历史会很麻烦。没错,知道自己已被入侵,晚上肯定难以入眠。但如果说这次经历有什么好处的话,那就是最终你会成为一名更优秀、更有经验的开发者。

说到这里,让我们举杯,致敬所有你永远不会提交.env文件的未来项目。干杯! 🥂 *碰杯* 最后,我想以一句临别赠言和对读者的最后提醒来结束这篇文章:

请不要提交.env。你肯定不想出现在GitHub 搜索结果的顶部吧。

文章来源:https://dev.to/somedood/please-dont-commit-env-3o9h