我有一个指向哪里我所有的配置文件所在的目录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
目录到不同的位置。
你不能。 GIT-配置(1)不支持的环境变量扩展,但只有有限的类型转换和路径扩展:
类型说明符可以是--int或--bool,使GIT中的配置确保变量(多个)是给定类型的和值转换为规范形式(简单十进制数为INT,“真”或“假”字符串布尔),或--path,其中做了一些路径膨胀 (参见--path下文)。 如果没有类型说明符被传递, 没有检查或变换以上的值进行的。
对于文档--path
状态:
- 路径
混帐配置将领先扩大到〜$ HOME的值,并〜用户的主目录为指定的用户 。 此选项设定值时没有影响(但你可以使用git配置BLA〜/命令行,让你的shell做扩展)。
术语“膨胀”没有出现在任何不同的上下文git-config(1)
那么你是怎么连的想法,它应该的,因为没有这样的功能是记录任何地方?
为了扩大环境变量,你必须预先处理的Git配置文件自己,通过创建一个模板文件,即,文件复制到您之前扩大与脚本变量$HOME
目录。
如果它是关于dotfile管理,然后做,什么都做的人:把它们放在一个目录中,并从添加符号链接到这个目录$HOME
。
我使用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"