如何在Git中管理多个分支上的配置文件?

时间:2017-12-26 02:05:15

标签: github configuration-files

考虑到一个非常基本的场景,在Git中我有3个分支,开发,分段和生产。我正在检查特定的Web服务器配置,每个环境都有硬编码的东西。例如,我有一个nginx.conf文件,其中包含一个硬编码的URL,具体取决于我正在构建的环境。

  • 比如在nginx.conf的开发分支中,我有www.dev.mywebsite.com
  • 在分期中我有www.staging.mywebsite.com
  • 在制作中我有www.mywebsite.com

如果我在dev中更新配置文件,我必须手动复制/粘贴所有更改,并在新修改的dev和另一个分支之间区分文件。

什么是最好的权利,或者只是管理多个配置文件的最简单方法,所以我不必手动复制/粘贴Github?

2 个答案:

答案 0 :(得分:0)

您无需复制/粘贴。你只需要合并。

例如:

dev:

分支中

<强> nginx.conf

server = www.dev.mywebsite.com

分支分段:

<强> nginx.conf

server = www.staging.mywebsite.com

分支制作:

<强> nginx.conf

server = www.mywebsite.com

你在dev中添加一行:

<强> nginx.conf

server = www.dev.mywebsite.com
newconf=new1

并提交为commit-1

然后你可以切换到另外两个分支并从dev合并: 其他两个看起来像: 在分支分段:

<强> nginx.conf

server = www.staging.mywebsite.com
newconf=new1

分支制作:

<强> nginx.conf

server = www.mywebsite.com
newconf=new1

答案 1 :(得分:0)

您可以考虑为三个分支中的每个分支对单独的配置文件进行版本控制,例如: nginx_dev.confnginx_stage.confnginx_prod.conf。在每个分支中工作时,只更新该分支的配置文件。当然,您在实际构建时使用的配置文件是nginx.conf,因此您必须从其中一个分支文件进行复制。

虽然这并不能完全解决您的问题,但它至少可以减轻您在分支更改中手动编辑nginx.conf文件的麻烦。