我正在尝试使用个人访问令牌与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/'认证失败"


当前回答

在Android Studio中选择vcs→push标签。弹出窗口将显示用户名和密码。输入您的用户名,而不是密码,输入令牌号码。它会被推送到存储库。

其他回答

最近github不允许直接从cmd使用我们的用户名和密码提交。为此,我们需要生成如下所述的访问令牌。

然后在命令提示符中使用相同的访问令牌作为用户名和密码,用于git命令git push, git pull等。例如

git push origin master
Username for 'https://github.com': lhq_4npmklMYXXXXXXXXXXXXXXXXXXXL8SxHxU
Password for 'https://lhq_4npmklMYXXXXXXXXXXXXXXXXXXXL8SxHxU@github.com':<give same access token here as password too>

你开始看到代码日志如下:

Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Delta compression using up to 8 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (18/18), 6.33 KiB | 539.00 KiB/s, done.
Total 18 (delta 5), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (5/5), completed with 2 local objects.
To https://github.com/xxxxxxxxxxx/xxx-xxxxx-repo.git
123456..1233456  master -> master

希望这能帮助到一些人。快乐编码!!:)

我使用的是Ubuntu 20.04 (Focal Fossa),我一直收到消息说我很快就不能从控制台登录了。我非常困惑。

最后,我得到了下面的URL将工作。但是你需要知道如何创建一个PAT(个人访问令牌),你必须把它保存在你电脑上的一个文件中。

下面是最终URL的样子:

git push https://1234567890123456789012345678901234567890@github.com/user-name/repo.git

长PAT(个人访问令牌)值——URL中//和@符号之间的整个长值就是你的PAT。

User-name将是您的用户名

回购。Git将是您的确切存储库名称

你也可以这样使用它:

当你做

git push

1. 系统将提示您输入用户名和密码

2. 只要像往常一样提交您的用户名

3.现在提交您的PAT作为您的密码,它将工作。

您需要按照以下步骤生成一个PAT:创建个人访问令牌

这将为您提供PAT值,您将放置在您的URL。

当您创建PAT时,请确保您选择了以下选项,以便它能够允许您管理存储库。

拯救你的PAT或失去它

获得PAT后,需要将其保存在本地文件中,以便再次使用。如果你不把它保存在某个地方,就没有办法再看到它,你将被迫创建一个新的PAT。

现在你至少需要:

在控制台中显示它的方法,以便您可以再次看到它。 或者,一种自动复制到剪贴板的方法。

对于1,只需使用:

cat ~/files/myPatFile.txt

其中路径是存储PAT值的位置和文件的真实路径。

2

xclip -selection clipboard < ~/files/myPatFile.txt

这将把文件的内容复制到剪贴板,这样您就可以更容易地使用PAT。

供您参考-如果您没有xclip,请执行以下操作:

sudo apt-get install xclip

它下载并安装xclip。如果没有apt-get,可能需要使用其他安装程序(如YUM)。

您可以轻松地更改远程认证,首先:

删除当前原点:

git remote remove origin

然后:

git remote add origin https://<TOKEN>@github.com/<USERNAME>/<REPO>.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文件,这就存在安全风险。

对于那些来自GitLab的人来说,对我有用的是:

先决条件:

创建令牌:

选择必要的权限 选择截止日期 通过按“创建个人访问令牌”生成 保存令牌!

步骤1。

添加遥控器:

Git远程添加origin https://<access-token-name>:<access-token>@gitlab.com/path/to/project.git

步骤2。

拉:

https:// < access-token-name >: <访问令牌> @gitlab.com/path/to/project.git

现在您可以从存储库中读取/写入数据了