所以如果..
$ git config user.name
↳ Alex Gray # OK (my name)
$ git config user.email
↳ alex@mrgray.com # OK (my email).
和。。
GithubUserForProject() { # in pwd
ORIGIN=$(git config --get remote.origin.url) && echo $ORIGIN
OWNER=${ORIGIN%/*} && echo $OWNER # trim URL tail
OWNER=${OWNER#*.com/} && echo $OWNER # trim URL head
OWNER=${OWNER#*:} && echo $OWNER # trim ssh URL head
}
$ cd /local/git/MyGitHubRepo && GithubUserForProject
↓ git@github.com:mralexgray/MyGitHubRepo.git
↓ git@github.com:mralexgray
↳ mralexgray # OK (my username, but skanky way of finding it)
但。。。
$ cd /local/git/SomeGuysProject && GithubUserForProject
↓ git://github.com/someguy/SomeGuysProject.git
↓ git://github.com/someguy
↳ someguy # WRONG! (cloned repo's user!)
那么,我如何以编程方式确定我的 github "短用户名",无论是从env
、github API 请求等,还是通过脚本或终端会话?
我认为这样一个愚蠢的问题如此明显地没有解决......因此,由于不知道如何在 bash 中巧妙地解析字符串而不求助于我熟记SED
的组合,并且......
security find-internet-password -s github.com | grep acct | sed 's/"acct"<blob>="//g' | sed 's/"//g'
瞧....
mralexgray
这可能取决于安装了 Github mac 客户端...又一次...未必。
我同意评论者的观点:Bash 怎么会知道你的用户名,除非你告诉它?
您可以使用git push
进行测试以了解它是否是"您的"存储库,但如果SSH密钥设置不正确,即使这样也会失败。简而言之,您应该将其设置为~/.bash_profile
或其他东西并完成它。