代码之家  ›  专栏  ›  技术社区  ›  rodee

如何使用git config更新配置文件节?

  •  0
  • rodee  · 技术社区  · 7 年前

    我需要补充一点 branch = super_foo 现有的 superproject

    $ cat .test_config
    [superproject "mysuper"]
        url = https://server.com/test/mysuper
    
    [submodule "tsn-inc"]
        url = url = https://server.com/test/foo_s
        branch = foo
    

    git config -f .test_config --add superproject.mysuper.branch super_foo
    

    但是,“mysuper”不是一个已知的值,所以我在下面尝试,因为只有一个超级项目部分。

    git config -f .test_config --add superproject.*.branch super_foo
    

    它增加了一个新的部分,如下所示:

    [superproject "*"]
        branch = super_foo
    

    相反,我想将分支添加到现有的superproject部分,有没有办法做到这一点?

    2 回复  |  直到 7 年前
        1
  •  1
  •   A.H.    7 年前

    写入配置时 git config 想要精确的密钥-这里不允许使用模式和正则表达式。所以你必须推断出 mysuper 莫名其妙地分手了。

    您可以提取 superproject 部分:

    git config --name-only --get-regex '^superproject\.' | sed  -r 's/^[^.]+\.(.*)\.[^.]+$/\1/' | sort -u
    

    如果你知道只有一个 如果您只对第一个部分感兴趣,则可以在脚本中设置值,如下所示:

    subsection=$(
        git config --name-only --get-regex '^superproject\.' |
        sed -rn '1,1s/^[^.]+\.(.*)\.[^.]+$/\1/p'
    )
    git config super --add "superproject.$subsection.branch" super_foo
    
        2
  •  0
  •   rodee    7 年前
    super_name=$(git config -f .test_config --name-only --get-regexp superproject | cut -d. -f2)
    

    git config -f .test_config --add superproject.$super_name.branch super_foo