在终端中显示git用户名的Bash脚本

在终端中显示git用户名的Bash脚本,bash,git,gist,Bash,Git,Gist,有人知道如何在终端中显示git用户名吗 我正在为分支使用下面的bash脚本,但是,由于我有几个帐户,我也想显示username或user email 顺便说一句,我知道我可以使用git config--global--list。这样做的目的是在终端中查看信息,而不必每次都进行检查,就像分支 parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } export P

有人知道如何在终端中显示git用户名吗

我正在为分支使用下面的bash脚本,但是,由于我有几个帐户,我也想显示
username
user email

顺便说一句,我知道我可以使用git config--global--list。这样做的目的是在终端中查看信息,而不必每次都进行检查,就像
分支

parse_git_branch() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

您可以使用
git config--get
来获取单个配置值,比如用户名。然后,您可以将其包装到函数中:

parse_git_user(){
git config--获取user.email
}
然后您可以将其以任何格式合并到提示符(
PS1
)中。例如:

export PS1=“\u@\h\W\[\033[32m\]\$(parse\u git\u分支机构)\[\033[00m\]($(parse\u git\u用户))$”
#这里-----------------------------------------------------------^

我怀疑您想确保为您的每个项目找到正确的
用户。电子邮件
?@Mureinik雄辩地回答了这个问题,但我认为这可能有助于您或其他人进行搜索

我建议您根据远程url设置
user.name
,而不是在提示符中显示它。这样它就可以正常工作了™. 它的工作原理是每次您切换到目录时都使用zsh钩子

autoload -Uz add-zsh-hook
set-git-email() {
  if [ -d .git ]; then
    remote=`git remote -v | awk '/\(push\)$/ {print $2}'`
    if [[ $remote == git@git.server.com:* ]]; then
       git config user.email user@email.com
    fi   
  fi
}
add-zsh-hook chpwd set-git-email
set-git-email

请注意,通常情况下,交互式shell配置(与脚本开发相反)在我们的姐妹站点更受欢迎。