我想将〜/ .gitconfig中的github.token值设置为shell命令的结果。我目前有以下内容:
[github]
user = zmanji
token = !echo ~/.githubtoken 2> /dev/null
然而,git config github.token不返回〜/ .githubtoken文件的内容,而是返回命令本身。我怎样才能让它按照需要运作?
编辑:为了清楚起见,我正在努力实现隐含的内容here:
您还可以将github.token定义为一个命令,该命令通过将变量设置为前缀为
!
的命令字符串来返回stdout上的实际令牌。
答案 0 :(得分:2)
这里的问题似乎是他没有在gitconfig设置中设置令牌。他正在使用defunkt's hub tool。这是git命令的包装器,除其他外,它允许您拥有GITHUB_USER
和GITHUB_TOKEN
环境变量。这将覆盖本地.gitconfig
文件中的设置。
然后,在用户ZSH config中指向别名alias git=hub
的用户无缝。然后,您应该能够在您设置环境变量的地方找到一个本地文件,并将您的存储库推送到公共世界,并提供所有私人信息。
**对于OSX上的自制用户,您可以通过brew install hub
安装该工具。
答案 1 :(得分:2)
我没有将我的GitHub令牌存储在文件中,而是将其存储在我的OS X Keychain中,并将其设为这样(我的.gitconfig
代码段):
[github]
token = !security find-generic-password -gs \"GitHub API Token\" 2>&1 >/dev/null | awk '/password/ {print $2}' | tr -d \\\"
答案 2 :(得分:0)
从git config man page我可以推断,只有git config alias.*
可以定义shell命令。
所以也许defunkt正在谈论一个名为token
的别名git config alias.token '!security 2>&1 >/dev/null find-generic-password -gs github.token | ruby -e 'print $1 if STDIN.gets =~ /^password: \\\"(.*)\\\"$/''
它将用于快速获取其GitHub令牌的值
然后,返回值将通过经典github.token
分配给git config github.token xxx
。