Git include如果Git_AUTHOR_NAME设置为我的名字

c90pui9n  于 2022-10-23  发布在  Git
关注(0)|答案(2)|浏览(132)

我正在与其他一些用户建立一个联合帐户,但希望使用我自己的.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设置为特定变量,是否还有其他方法可以包括?

cs7cruho

cs7cruho1#

首先,hasconfig实际上是Git 2.36.0中的新版本(请参阅发行说明)。其次,includeIf.hasconfig:remote.*.url:...仅适用于远程URL(请参阅相同的发行说明和随附的更新文档)。这意味着即使您更新了Git版本,也无法在此处测试author.name
是否可以在includeIf表达式中查询环境变量?
一般来说不是。

7lrncoxx

7lrncoxx2#

与其让Git在环境中执行逻辑,不如按照自己的喜好设置它。您可以将$HOME$XDG_*变量设置为您自己定制的环境,一切都会正常工作。从$XDG_CONFIG_HOME开始,将git/config放在那里,这是您的个人git配置。XDG vars

相关问题