如何使用git维护一个稍微不同的生产源代码副本?

Zab*_*bba 5 environment configuration config ruby-on-rails

我有一个Ruby on Rails应用程序,它发送电子邮件.

在生产中,我想使用一些X SMTP服务器,但在开发中我想使用其他一些SMTP服务器(因此我的配置文件用于SMTP设置在开发和生产环境中是不同的)

所以我需要维护2个配置文件(每个用于开发/生产环境的SMTP设置一个文件).

截至目前,我将Y STMP的设置保存在我的开发机器上的文件中.我从github仓库克隆生产代码,使用Y SMTP的设置修改工作副本并继续.然后,当我必须将更改推送到github时,我会反转该过程.它有效,但我认为应该有更好的方法吗?

在开发和生产代码库之间处理这种"小差异"的"git方式"是什么?


UPDATE

每个@Mike Axiak,这是你的意思是:(为了简单而假设,我没有使用ln,但使用的copy方法)

设置源代码,以便本地计算机上有2个设置文件:

  • smtp.settings.prod
  • smtp.settings.dev

两者都被添加到 .gitignore

要处理本地副本:

  • 从github中提取代码
  • 将smtp.settings.dev复制到smtp.settings
  • 使用.

要将更改推送到服务器:

  • 在推送之前,将文件smtp.settings.prod复制到smtp.settings

如果这是你的意思,有没有办法通过git自动化复制过程?

And*_*ite 5

Rails已经使用配置/环境目录的文件支持这种事情.只需在适当的文件中添加您的设置即可.