动态git config user.name - 取决于主机名

时间:2018-05-15 09:19:44

标签: git dynamic config

我从两台计算机上使用git

我想:

  • 在两台计算机上使用相同的~/.gitconfig文件。
  • 在一台计算机或另一台计算机上提交不同的user.name

简而言之,我希望能够使用 user.name = "Mic - #{Hostname}" ,动态读取Hostname

有没有办法实现这一目标?

我看到的另一种方法是手动更改我在这两台计算机上使用的每个git仓库上的user.name - 但我发现它并不干净。

针对这种情况的人的解决方案: 似乎没有内置解决方案,因为git不会自动扩展配置参数。因此,按照以下建议,我只需在导入新的(共享)~/.gitconfig后在部署脚本中发出以下命令:

git config --global user.name "Mic [`hostname`]"

这样,git名称总是会更新。

根据您的配置,您也可以将其添加到~/.bashrc或您使用的~/bash_profile中 - 尽管它看起来有点矫枉过正。

2 个答案:

答案 0 :(得分:2)

不要将名称存储在~/.gitconfig中,而是存储在~/.bash_profile设置的环境变量中:

GIT_AUTHOR_NAME="Mic - $HOSTNAME"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
export GIT_AUTHOR_NAME GIT_COMMITTER_NAME

答案 1 :(得分:2)

Git不会在配置文件中进行变量扩展。

要执行此操作,您可以在.profile或您用来调用的任何启动文件中添加一行

git config --global user.name ${GIT_USER_NAME}
git config --global user.email ${GIT_USER_EMAIL}

并在调用之前设置它们。