我正在与其他一些用户建立一个联合帐户,但希望使用我自己的.gitconfig。我使用SendEnv和SSH发送GIT_AUTHOR_NAME,我的想法是,如果我的名字包含在这个变量中,我只想使用它来源代码gitconfig。
到目前为止,我尝试使用includeIf
[includeIf "hasconfig:author.name:My Name"]
path = ~/my_name/.gitconfig
然而,hasconfig在git 2.27.0(我正在使用的版本)中不可用,或者由于另一个原因而失败。
也有可能使用
if [[ "$GIT_AUTHOR_NAME" == "My Name" ]]; then
. ~/my_name/.bashrc
fi
然后在我的.bashrc中处理它。
但使用GIT_CONFIG
环境变量似乎只适用于git config
命令。如果这仍然适用于所有命令,那将是我的最佳解决方案。
我看到了创建别名的建议
alias git="HOME=~/my_name command git"
这是迄今为止我见过的最好的解决方案,但我不太喜欢这个解决方案。
是否可以在includeIf表达式中查询环境变量?或者,如果GIT_AUTHOR_NAME设置为特定变量,是否还有其他方法可以包括?
2条答案
按热度按时间cs7cruho1#
首先,
hasconfig
实际上是Git 2.36.0中的新版本(请参阅发行说明)。其次,includeIf.hasconfig:remote.*.url:...
仅适用于远程URL(请参阅相同的发行说明和随附的更新文档)。这意味着即使您更新了Git版本,也无法在此处测试author.name
。是否可以在includeIf表达式中查询环境变量?
一般来说不是。
7lrncoxx2#
与其让Git在环境中执行逻辑,不如按照自己的喜好设置它。您可以将
$HOME
和$XDG_*
变量设置为您自己定制的环境,一切都会正常工作。从$XDG_CONFIG_HOME
开始,将git/config
放在那里,这是您的个人git配置。XDG vars。