linux – 使用git进行特定于分支的配置文件维护
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 使用git进行特定于分支的配置文件维护,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1676字,纯文字阅读大概需要3分钟。
内容图文
![linux – 使用git进行特定于分支的配置文件维护](/upload/InfoBanner/zyjiaocheng/951/3a73824d0d5f4628a201fdff1ea05b58.jpg)
这个问题让我困惑很长一段时间,因为我找不到好的,或多或少的通用解决方案.
让我们说有两个git分支可用,生产和开发;每个使用它自己的可配置参数用于某些任务(即凭证,构建路径,测试/部署脚本切换等).同时实现脚本&代码对于两个分支都是通用的.
现在,出现的问题是 – 如何在git存储库中以所需的方式维护特定于分支的配置.其中一个常见的解决方案是在git中使用’template’配置文件,symlinking并忽略特定分支的具体内容,如
$cat .gitignore | grep conf
/concrete.conf
$ls -l *.conf
lrwxrwxrwx 1 1000 100 12 Oct 29 10:23 concrete.conf -> generic.conf
-rw-r--r-- 1 1000 100 0 Oct 29 10:16 generic.conf
接下来打开并调整开发盒上的concrete.conf.然而,这不是我追求的解决方案.
我的要求(好的,愿望)是:
>支持每个git分支单独的配置文件,和
>保持由git同时管理的特定于分支的配置文件
它甚至可能吗?可能(实际上,首选是由其他人提供的文件,但它没有相关……)
到目前为止,我想到的最好的方法是使用合并后的钩子来调整git忽略的其他来源的每个分支配置本身,但它从一开始就很臭.
有关解决问题的任何建议吗?
PS:* nix特定的建议(即使用符号链接/硬链接)建议绝对没问题,我确实对M $目标感兴趣
解决方法:
这是可能的,并且不涉及符号化.
你没有版本my.config,而是模板文件my.config.tpl和一个值文件(每个分支的值)
prod.conf
dev.conf
然后,您可以使用content filter driver,使用.gitattributes declaration.
(图片来自“Customizing Git – Git Attributes”,来自“Pro Git book”)
该脚本通过将占位符值替换为< branch.conf>的值来生成my.config文件.每次结账时都会有文件.
您可以通过以下方式了解当前分支名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
生成的实际my.config仍然被忽略(由.gitignore).
这意味着您的实际工作树不会“脏”.
涂抹脚本选择正确的值文件,并根据git checkout期间应用涂抹脚本的模板生成正确的web.config.
请参阅“git smudge/clean filter between branches”的完整示例.
内容总结
以上是互联网集市为您收集整理的linux – 使用git进行特定于分支的配置文件维护全部内容,希望文章能够帮你解决linux – 使用git进行特定于分支的配置文件维护所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。