在GIT中配置壳变量扩展(Shell variable expansion in git confi

2019-06-25 21:28发布

我有一个指向哪里我所有的配置文件所在的目录shell变量。 让我们假设变量与创建export RC=$HOME/rc 。 我在配置目录全局忽略文件: ~/rc/globalgitignore

我的问题是,我怎么能扩大RC在我的变量.gitconfig文件?

我已经试过如下:

  • excludesfile = $RC/globalgitignore

  • excludesfile = !$RC/globalgitignore

  • excludesfile = !echo $RC/globalgitignore

  • excludesfile = !$(echo $RC/globalgitignore)

这些解决方案的工作。

:如果我输入完整路径的唯一方法适用excludesfile = ~/rc/globalgitignore ,但后来我不得不改变路径,如果将我rc目录到不同的位置。

Answer 1:

你不能。 GIT-配置(1)不支持的环境变量扩展,但只有有限的类型转换和路径扩展:

类型说明符可以是--int或--bool,使GIT中的配置确保变量(多个)是给定类型的和值转换为规范形式(简单十进制数为INT,“真”或“假”字符串布尔),或--path,其中做了一些路径膨胀 (参见--path下文)。 如果没有类型说明符被传递, 没有检查或变换以上的值进行的。

对于文档--path状态:

- 路径

混帐配置将领先扩大到〜$ HOME的值,并〜用户的主目录为指定的用户 。 此选项设定值时没有影响(但你可以使用git配置BLA〜/命令行,让你的shell做扩展)。

术语“膨胀”没有出现在任何不同的上下文git-config(1) 那么你是怎么连的想法,它应该的,因为没有这样的功能是记录任何地方?

为了扩大环境变量,你必须预先处理的Git配置文件自己,通过创建一个模板文件,即,文件复制到您之前扩大与脚本变量$HOME目录。

如果它是关于dotfile管理,然后做,什么都做的人:把它们放在一个目录中,并从添加符号链接到这个目录$HOME



Answer 2:

我使用bash脚本在我的配置,使变量扩展。 只是出口您在你的.bashrc需要,并在脚本中使用的变量:

在我的〜/ .bashrc:

export TESTVARIABLE="hello"

在我的〜/的.gitconfig:

[alias]
    test = !bash -c '"echo \"Value: $TESTVARIABLE\";"'

在我的bash提示符:

bash> git test
    Value: hello 

这样做的另一种方法,就是在你的shell RC添加一个git config命令。 我比如在我的.bashrc:

git config --global user.name "$USER@$HOSTNAME"

我对我所有的机器相同的配置,并通过添加这个我可以从不同的机器上提交区分。 你可以做同样的,并添加到你的shell RC:

export RC="$HOME/rc"
git config --global core.excludesfile "$RC/globalgitignore" 


文章来源: Shell variable expansion in git config
标签: git shell