Bash 用于在终端中显示 git 用户名的脚本
Bash script to show git username in terminal
有人知道如何在终端中显示 git username
吗?
我正在为分支使用以下 bash 脚本,但是,由于我有多个帐户,因此我也想显示 username
或 user email
顺便说一句,我知道我可以使用 git config --global --list
。这个想法是在终端中查看信息而不必每次都检查,就像 branch
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'
}
export PS1="\u@\h \W\[3[32m\]$(parse_git_branch)\[3[00m\] $ "
您可以使用 git config --get
获取单个配置值,例如用户名。然后,您可以将其包装在一个函数中:
parse_git_user() {
git config --get user.email
}
然后您可以将其以您希望的任何格式合并到提示 (PS1
) 中。例如:
export PS1="\u@\h \W\[3[32m\]$(parse_git_branch)\[3[00m\] ($(parse_git_user))$ "
# Here -----------------------------------------------------------^
我怀疑您想确保每个项目都得到正确的 user.email
? @Mureinik 雄辩地回答了这个问题,但我认为这可能会帮助您或其他人搜索。
与其在提示中使用 user.name
,我建议您根据远程 url 进行设置。这样它就可以正常工作™。
每次进入目录时,它都会使用 zsh 挂钩。
autoload -Uz add-zsh-hook
set-git-email() {
if [ -d .git ]; then
remote=`git remote -v | awk '/\(push\)$/ {print }'`
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
有人知道如何在终端中显示 git username
吗?
我正在为分支使用以下 bash 脚本,但是,由于我有多个帐户,因此我也想显示 username
或 user email
顺便说一句,我知道我可以使用 git config --global --list
。这个想法是在终端中查看信息而不必每次都检查,就像 branch
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ ()/'
}
export PS1="\u@\h \W\[3[32m\]$(parse_git_branch)\[3[00m\] $ "
您可以使用 git config --get
获取单个配置值,例如用户名。然后,您可以将其包装在一个函数中:
parse_git_user() {
git config --get user.email
}
然后您可以将其以您希望的任何格式合并到提示 (PS1
) 中。例如:
export PS1="\u@\h \W\[3[32m\]$(parse_git_branch)\[3[00m\] ($(parse_git_user))$ "
# Here -----------------------------------------------------------^
我怀疑您想确保每个项目都得到正确的 user.email
? @Mureinik 雄辩地回答了这个问题,但我认为这可能会帮助您或其他人搜索。
与其在提示中使用 user.name
,我建议您根据远程 url 进行设置。这样它就可以正常工作™。
每次进入目录时,它都会使用 zsh 挂钩。
autoload -Uz add-zsh-hook
set-git-email() {
if [ -d .git ]; then
remote=`git remote -v | awk '/\(push\)$/ {print }'`
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