我有一些关于在git repo中管理配置文件的问题。
问题1:假设我们在master中有.env
看起来像这样(变量刚刚声明但未定义!):
XXX_CLIENT_ID=
XXX_SECRET=
然后有人拉主人,创建本地分支,更改.env
,做一些提交然后想要合并到主人。主分支如何在合并期间省略.env
文件中的更改? git update-index --assume-unchanged
解决了这个问题,或者我们可以更好地处理它吗?
问题2:好的,让我们看看我们团队中需要共享配置的情况,例如.dev.env
。就像在主人的问题1 中一样,我们有类似.env
的文件没有值,但是我们希望在团队中分享它,并且它应该是公开的秘密,因为主人仍然公开。看起来git-secret
做这项工作但是我想知道你今天用什么来解决这个问题。
您是如何在团队中管理它的好主意或最佳实践?
答案 0 :(得分:0)
问题1:
一个好的做法是分离代码和配置。即,在保存代码的存储库中,您有一个.env.sample
文件,该文件指定应用程序期望设置的配置变量(可能具有默认值)。
然后,从本地克隆或分支出来的人可以在添加到.env
的{{1}}文件中指定其属性值,从而不会影响git树。当开发人员在本地测试应用程序时,它使用.gitignore
中的配置,该配置特定于开发人员的环境。
通过这种方式,您可以在master中保留一个.env
文件,向公众指示需要哪些配置,但克隆者需要为其本地环境指定自己的.env.sample
如果添加/删除了配置(这是需要合并回主服务器的信息),开发人员只会编辑.env
文件。