管理存储库中的项目配置文件

时间:2016-11-11 12:34:34

标签: git github config-files

我有一些关于在git repo中管理配置文件的问题。

问题1:假设我们在master中有.env看起来像这样(变量刚刚声明但未定义!):

XXX_CLIENT_ID=
XXX_SECRET=

然后有人拉主人,创建本地分支,更改.env,做一些提交然后想要合并到主人。主分支如何在合并期间省略.env文件中的更改? git update-index --assume-unchanged解决了这个问题,或者我们可以更好地处理它吗?

问题2:好的,让我们看看我们团队中需要共享配置的情况,例如.dev.env。就像在主人的问题1 中一​​样,我们有类似.env的文件没有值,但是我们希望在团队中分享它,并且它应该是公开的秘密,因为主人仍然公开。看起来git-secret做这项工作但是我想知道你今天用什么来解决这个问题。

您是如何在团队中管理它的好主意或最佳实践?

1 个答案:

答案 0 :(得分:0)

问题1: 一个好的做法是分离代码和配置。即,在保存代码的存储库中,您有一个.env.sample文件,该文件指定应用程序期望设置的配置变量(可能具有默认值)。 然后,从本地克隆或分支出来的人可以在添加到.env的{​​{1}}文件中指定其属性值,从而不会影响git树。当开发人员在本地测试应用程序时,它使用.gitignore中的配置,该配置特定于开发人员的环境。

通过这种方式,您可以在master中保留一个.env文件,向公众指示需要哪些配置,但克隆者需要为其本地环境指定自己的.env.sample

如果添加/删除了配置(这是需要合并回主服务器的信息),开发人员只会编辑.env文件。