我有一个应用程序的存储库,我正在处理这个应用程序,其中包括一个配置文件。目前,我使用.dist扩展名进行分发,并让用户在编辑文件之前重命名它。
nate:~/myAwesomeApp% git ls-files
.gitignore
README
config.dist
glorious_support_lib.p
bestProgramEvar.f90这很好,而且实际的配置被忽略了。
nate:~/myAwesomeApp% cat .gitignore
config不过,如果我能将配置文件以其实名分发并随时编辑,而忽略它,使新克隆的存储库副本具有“功能”发行版,并且不会被覆盖、失败或受到其他干扰,用户就不必担心通过意外的将其超机密配置细节推送或发布到互联网络上,这将是一个甜蜜的。
有办法这样做吗?让git保持在被克隆出的文件的单个原始版本附近,但之后会被忽略吗?
我敢肯定以前有人问过这个问题,但对我来说,我的google-fu失败了。把学校放在很深的地方所以。
发布于 2010-09-17 06:23:00
您还可以版本和分发:
'config.dist')
.gitattributes文件声明 (仅适用于将检测该内容并生成最终(和私有的,如“非版本化”config文件)的脚本。
现在,这就是过滤驱动程序所要做的事情(它涉及修改文件regardless of its "state", i.e its full path and name的内容)。但它能起作用。
.gitattributes将包含:
config.dist filter=generateConfig

您还可以注册您的污点脚本(在创建/更新工作目录时应用于签出步骤)如下:
git config --global filter.generateConfig.smudge /path/to/generateConfig发布于 2010-09-10 16:28:45
我可能会包括一个将“config.dist”复制到“config”的“安装”脚本。
我不认为有一种方法可以使文件既不被忽略也不被忽略。
发布于 2010-09-10 21:48:20
这是一个很好的问题,但是AFAIK没有git解决方案。
很少有解决办法:
config不存在时读取config.dist (例如,PHPUnit使用此技术)https://stackoverflow.com/questions/3686270
复制相似问题