当我在GitHub尝试拉取或推送时,出现错误信息:“请使用个人访问令牌。”

23

我正在使用SourceTree将版本控制作为GitHub,但自8月13日以来无法成功,下面是我从GitHub获取的错误信息。

远程:支持密码身份验证已于2021年8月13日删除。请改用个人访问令牌。远程:请参见https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/获取更多信息。

有人知道问题出在哪里,或者如何使用个人访问令牌吗?


这是一个快速的逐步视频,教你如何解决问题。https://youtu.be/iKf8-hhdWjs - VedantK
8个回答

112

既然OP使用SourceTree,那么请按照以下步骤操作:

  1. 在Github账户设置中生成你的个人访问令牌
  2. 双击SourceTree中的一个仓库,点击窗口右上角的设置图标。
  3. 在菜单选项卡中点击远程。你将看到该仓库的远程URL,应该像这样https://github.com/username/repo.git
  4. 点击编辑并将其更改为https://<your_token>@github.com/username/repo.git

完成。


1
谢谢,这个好使。你是真正的最有价值的球员。我花了整个早上/中午浏览所有那些无用的东西。 - Veljko Stefanovic
谢谢,伙计,感谢你的回答。干杯! - Nick
这很关键,因为其他所有内容都是关于使用令牌作为密码,但是它仍然会出现错误。只有通过这种方式更新远程才能使其正常工作。谢谢。 - Aggressor
3
这是非常糟糕的方式,这会使您的令牌(PAT)变得容易受到攻击,因为任何人都可以看到它。 - noobsee

17

谢谢,它对我有效。 - mahesh kolagatla
我们需要仅使用一次用户名,而不是两次,所以这里是适合我的模板。https://<username>:<githubtoken>@github.com/<repositoryname>.git - ManMohan

3

遇到相同问题并以以下方式解决:

打开Sourcetree,在右侧点击“设置”(存储库设置)-> “远程” -> 选择“Origin”并编辑:

设置URL/路径,格式为:https://<从GitHub获取的个人访问令牌>@<git_url>.git

另一种解决方法是通过git配置文件来实现。为此,在您的.git文件夹中打开config文件,并像这样替换[remote "origin"] URL

[remote "origin"]
    url = https://<your_personal_access_token_from_github>@<git_url>.git
    fetch = +refs/heads/*:refs/remotes/origin/*

这是最佳解决方案! - Payedimaunt

3

首先,需要创建一个个人访问令牌。您可以通过以下步骤获得:从您的Github账户 -> 设置 -> <>开发者设置 -> 个人访问令牌 -> 生成新令牌。您需要指定令牌名称、过期日期以及可能拥有的权限。在单击"生成令牌"之后,请确保保存该代码,因为您将使用它作为登录代码来登录Sourcetree而不是原始的Github密码。

现在,您需要重新输入详细信息以登录,使用创建的令牌作为密码。为此,请转到C:\Users\{your_user_folder}\AppData\Local\Atlassian\SourceTree并删除passwd文件,以强制Sourcetree要求您重新输入凭据。
正常打开Sourcetree时,当它要求您输入凭据时,请像上面提到的那样使用令牌作为密码输入。


1
谢谢!我因为Sourcetree停止要求我的密码而感到困惑,因此我无法粘贴令牌。您在这里建议的文件删除似乎解决了这个问题。 - GarrickW

1

我的问题被删除了。我已经在http://rodmclaughlin.com/difficulties-with-github-s-new-security-system上总结了它。 - rodmclaughlin

0

只需3个步骤:

  1. 删除此路径下的passwd文件:\AppData\Local\Atlassian\SourceTree\
  2. 重启SourceTree
  3. 重新登录

就是这样。


你能说明一下上面的解决方案是仅适用于Windows(或Linux)操作系统吗? 我正在使用macOS,但在我的系统中找不到类似的路径。 - Andrej
我使用Windows操作系统,但我认为它应该适用于所有平台。passwd文件来自SourceTree,它应该存在于所有操作系统中。 - noobsee

0

0

macOS用户

似乎如果用户在过去尝试使用错误的验证方式添加他们的Github帐户,则会出现问题。然后,即使您在SourceTree中删除该帐户并尝试重新添加相同的帐户,也将使用旧的身份验证设置。

以下是我使用的一个过程。可能需要一些修改,但我希望用户能找到解决方法。

  1. 在Finder 中确保您可以看到隐藏文件(Cmd+Shift+.)
  2. 进入您的用户文件夹,转到 /Library/Application Support/SourceTree
  3. 搜索以 STAuth-github.com 结尾的文件并删除它

如果您在 SourceTree 中删除了该帐户,则应能够再次添加它。如果您没有删除该帐户,则在尝试从 repo 获取时,SourceTree 将要求您使用个人访问令牌进行身份验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接