在分支之间git不同的配置文件

时间:2013-12-05 19:12:08

标签: git version-control

我正在尝试在两个不同的分支中使用相同的配置文件。 我希望将文件放在版本控制下的develop分支和修订控件之外的生产分支上。所以我正在尝试这里建议的内容。

http://cogniton-mind.tumblr.com/post/63560840467/howto-gitignore-for-different-branches-update

我有文件config / config.php git rm然后将它添加到我的.gitignore上 我添加并提交并推送到分支生产。 我把文件的副本放回到原来的位置和我的git状态,我看到,正如预期的那样,没有什么需要提交 我签出了我的开发分支并对该文件进行了一些更改。添加,提交和推动开发。 我结帐生产 然后我尝试将开发与生产合并,我得到以下内容。

CONFLICT (modify/delete): config/config.php deleted in HEAD and modified in develop. Version develop of config/config.php left in tree.

是否要避免这种情况,并且在修订控制下进行开发,而不是在版本控制中进行生产?

1 个答案:

答案 0 :(得分:0)

另一种方法是使用gitignore文件,并使用 content filter driver (自动执行smudge脚本在结帐时)生成自动生成正确的配置文件(不会被版本化)

smudge

你的版本是什么:

  • 模板文件
  • 一个dev配置文件
  • 一个能够检测签出哪个分支的脚本:
    • 如果是dev分支,则会根据dev配置值和模板文件生成配置文件
    • 如果它是prod分支,它会从prod配置值在git repo外部获取和模板文件
    • 生成prod配置文件

这样,你就不会冒任何“秘密”值(它们存储在“其他地方”)的风险,并且你总是得到正确的配置文件。