linux切换分支,linux – 使用git进行特定于分支的配置文件维护

这个问题让我困惑很长一段时间,因为我找不到好的,或多或少的通用解决方案.

让我们说有两个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

该脚本通过将占位符值替换为< branch.conf>的值来生成my.config文件.每次结账时都会有文件.

您可以通过以下方式了解当前分支名称:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

生成的实际my.config仍然被忽略(由.gitignore).

这意味着您的实际工作树不会“脏”.

涂抹脚本选择正确的值文件,并根据git checkout期间应用涂抹脚本的模板生成正确的web.config.

标签:linux,git,version-control,configuration

来源: https://codeday.me/bug/20191007/1865620.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值