如何在git中管理用户友好的.env



我正试图将.env文件推送到github上的repo中,该文件应该只包含变量名,而不包含任何数据,因此其他人更容易使用.env进行配置。之后,我将.env添加到我的gitignore文件中,但它一直在跟踪.env,并在我提交推送时将其推送到我的repo中。所以我的问题是,如何在不推送个人数据并覆盖它的情况下创建.env文件?

有几种方法可以实现这一点。

我认为最标准的方法是在您的repo中有一个.example文件,然后会为项目的每个用户更改该文件。所以你只需要一个CCD_ 3,你就会在本地";实现";env.example(我的意思是,您将使用.env.example并生成一个有效的.env配置文件(。使用这种方法,您必须跟踪XYZ.env.example忽略XYZ.env


另一种方法是使用git update-index --[no]-skip-worktree

来自文件:

Skip worktree位可以用一句(长(话来定义:当读取一个条目时,如果它被标记为Skip worktree,那么Git会假装它的工作目录版本是最新的,并读取索引版本。

详细地说;阅读";意味着检查文件是否存在,读取文件属性或文件内容。工作目录版本可能存在,也可能不存在。如果存在,其内容可能与索引版本相匹配,或者不写作不受这一点的影响,内容安全仍然是第一位的。注意,如果安全的话,Git可以更新工作目录文件,即标记为跳过工作树的文件(即工作目录版本匹配索引版本(

这意味着您可以在没有生产/测试/调试值的情况下保持初始XYZ.env文件的查看方式,然后您可以自由地更改它,而不会因为这些更改而对您进行git调试。

如果需要,可以更新文件,并且也可以推送新的更改。只需使用git update-index --no-skip-worktree取消标记文件即可。

请记住,如果remote对.env进行了更改,那么您将在本地发生冲突(这是一件好事(。

最后一件事——这个命令只能在本地工作每个贡献者(如果他/她愿意(都必须在其本地克隆上执行此操作。

相关内容

最新更新