Best practice - Git + Build automation - Keeping configs separate

一笑奈何 提交于 2019-11-26 08:45:42
VonC

That is called content filter driver, and it allows you to declare, in a .gitattributes file (and only for your config files type) a smudge script which will automatically on checkout:

  • combine a config file template file (config.tpl)
  • with the right config file value (config.dev, config.prod, ...)
  • in order to produced a non-versioned config file (private file)

See "Customizing Git - Git Attributes":

echo '*.cfg.tpl config' >> .gitattributes
git config --global filter.config.smudge yourScript

With that approach, you don't need submodules, but you can generate as many config file you need depending on your environment, like for instance your branch:
A bit like in "Find Git branch name in post-update hook", your smudge script can find out in which branch it is currently executing with:

#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!