【发布时间】:2012-09-23 21:47:51
【问题描述】:
如果..
$ 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“短用户名”,无论是来自 environment、github API 请求等,还是(通过脚本或终端会话?
【问题讨论】:
-
如果您只是指您自己的帐户名称,而不是根据您正在使用的克隆而变化的帐户名称,为什么不直接硬编码呢?它不会改变。如果它是你试图从 git 遥控器派生的东西,git 无法知道哪些遥控器是“你的”或“规范的”。要对 github 进行 API 调用,您必须提供用户凭据,因此您不妨只为自己提供用户名,而不用打扰调用。也许
export GITHUB_USERNAME='mralexgray'并完成它?不知何故,我觉得我误解了你的问题。 -
不,你明白了,你的解决方案是我传统上管理这个变量的方式。但我觉得这个值与“工作流程”如此分离有点奇怪,并认为一定有某种我没有考虑过的方法。
-
奇怪?这对我来说似乎很明智。 git 应该与所有遥控器对话,就好像它们是一样的——为什么它应该能够找出你的 github 帐户名?您可以在
~/.ssh/configgithub 节中包含您的用户名作为评论并解析出来。至少那是一个合适的地方来记录它?
标签: git bash github terminal environment-variables