我正在尝试使用个人访问令牌向GitHub进行身份验证。在github上的帮助文件中,它声明使用cURL方法进行身份验证(https://help.github.com/articles/creating-an-access-token-for-command-line-use)。我已经尝试过了,但是我仍然无法推送到GitHub。请注意,我正在尝试从未经身份验证的服务器(Travis-CI)进行推送。
cd $HOME
git config --global user.email "[email protected]"
git config --global user.name "username"
curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/ol3-1.git gh-pages
cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf
git add -f .
git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages"
git push -fq origin gh-pages
此代码导致错误:
remote:匿名对scuzzlebuzzle / ol3-1.git的访问被拒绝。
致命:“ https://github.com/scuzzlebuzzle/ol3-1.git/ ”的身份验证失败
您的curl
命令是完全错误的。您应该使用以下内容
curl -H 'Authorization: token <MYTOKEN>' ...
除此之外,这实际上并不授权您的计算机克隆存储库(如果它是私有的)。(但是,看看它表示不是。)通常,您需要执行以下操作:
git clone https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git --branch=gh-pages gh-pages
这会将您的凭据添加到克隆存储库时创建的远程目录中。但是不幸的是,您无法控制Travis如何克隆您的存储库,因此您必须像这样编辑遥控器。
# After cloning
cd gh-pages
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
这将使您的项目修复为使用内置凭据的遥控器。
警告:令牌具有读/写访问权限,应像对待密码一样对待。如果您在克隆或添加遥控器时在克隆URL中输入令牌,
Git writes it to your .git/config file in plain text, which is a security risk.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句