我正在尝试使用个人访问令牌与GitHub进行身份验证。在GitHub的帮助文件中,它声明使用cURL方法进行身份验证(创建个人访问令牌)。我已经尝试过了,但是我仍然无法推送到GitHub。请注意,我正试图从未经验证的服务器(特拉维斯CI)推送。

cd $HOME
git config --global user.email "emailaddress@yahoo.com"
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:匿名访问scuzzlebuzz /ol3-1。git否认。

致命:'https://github.com/scuzzlebuzzle/ol3-1.git/'认证失败"


当前回答

Git远程删除原点 Git远程添加源https://{accesstoken}:{accesstoken}@gitlab.com/{username}/{repo}.git Git推送https://{youraccesstoken}@github.com/{username}/{repo}.git

这对我很有用。

其他回答

用于登录github.com门户的密码在Visual Studio Code CLI/shell中不起作用。您应该通过生成一个新令牌来从URL https://github.com/settings/tokens复制PAT令牌,并将该字符串粘贴到CLI中作为密码。

我以前使用密码使用Git CLI访问我的私有存储库,并使用Git config—global credential保存了我的凭据。辅助存储。

由于今天已经放弃了对密码的支持,我无法使用git配置命令建议的令牌更新我的凭据。

如果其他人在Linux上也有这个问题,您可以手动更新~/。git-凭据文件,例如

nano ~/.git-credentials

在:和@符号之间输入标记。(保存并关闭文件,按Ctrl + O, Enter, Ctrl + X)。

你可能还必须在证书文件中更新你的令牌后运行以下命令(参见@guhur的评论):

git config --global credential.helper store

注意,通过使用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会以纯文本的形式将其写入您的. Git /config文件,这就存在安全风险。

生成令牌

使用创建个人访问令牌中的说明生成令牌。 (GitHub配置文件->设置->开发者设置->个人访问令牌)

实际上使用令牌

如果您已经在本地克隆了存储库

git remote remove origin
git remote add origin https://[TOKEN]@github.com/[REPO-OWNER]/[REPO-NAME]
git push

如果您正在克隆一个新的存储库

git clone https://[TOKEN]@github.com/[REPO-OWNER]/[REPO-NAME]

(将方括号和方括号之间的内容替换为相应的详细信息。@后面的部分与不带https://)的存储库url相同

从开发人员设置生成访问令牌后,运行这些命令, git push origin [branch]用户名为'https://github.com': [accessToken]密码为'https://[accessToken]@github.com':[accessToken]