我正在使用SourceTree将版本控制作为GitHub,但自8月13日以来无法成功,下面是我从GitHub获取的错误信息。
远程:支持密码身份验证已于2021年8月13日删除。请改用个人访问令牌。远程:请参见https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/获取更多信息。
有人知道问题出在哪里,或者如何使用个人访问令牌吗?
我正在使用SourceTree将版本控制作为GitHub,但自8月13日以来无法成功,下面是我从GitHub获取的错误信息。
远程:支持密码身份验证已于2021年8月13日删除。请改用个人访问令牌。远程:请参见https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/获取更多信息。
有人知道问题出在哪里,或者如何使用个人访问令牌吗?
既然OP使用SourceTree,那么请按照以下步骤操作:
设置
图标。远程
。你将看到该仓库的远程URL,应该像这样https://github.com/username/repo.git
。编辑
并将其更改为https://<your_token>@github.com/username/repo.git
。完成。
步骤2:打开.git > config
文件并将[remote "origin"] URL替换为以下内容
https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git
遇到相同问题并以以下方式解决:
打开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/*
首先,需要创建一个个人访问令牌。您可以通过以下步骤获得:从您的Github账户 -> 设置 -> <>开发者设置 -> 个人访问令牌 -> 生成新令牌。您需要指定令牌名称、过期日期以及可能拥有的权限。在单击"生成令牌"之后,请确保保存该代码,因为您将使用它作为登录代码来登录Sourcetree而不是原始的Github密码。
现在,您需要重新输入详细信息以登录,使用创建的令牌作为密码。为此,请转到C:\Users\{your_user_folder}\AppData\Local\Atlassian\SourceTree
并删除passwd
文件,以强制Sourcetree要求您重新输入凭据。
正常打开Sourcetree时,当它要求您输入凭据时,请像上面提到的那样使用令牌作为密码输入。
只需3个步骤:
passwd
文件:\AppData\Local\Atlassian\SourceTree\
就是这样。
passwd
文件来自SourceTree,它应该存在于所有操作系统中。 - noobsee在 MacOS 上使用 Sourcetree 时遇到了相同的问题。
您还可以在 Sourcetree 中使用 Auth Type Basic,并将 PAT 用作密码。
为了使其正常工作,我还需要从钥匙串中删除 GitHub 的互联网密码(请参见此处https://howieyoung.medium.com/suffering-from-the-latest-403-error-from-github-on-sourcetree-e04a844efd35)
macOS用户
似乎如果用户在过去尝试使用错误的验证方式添加他们的Github帐户,则会出现问题。然后,即使您在SourceTree中删除该帐户并尝试重新添加相同的帐户,也将使用旧的身份验证设置。
以下是我使用的一个过程。可能需要一些修改,但我希望用户能找到解决方法。
如果您在 SourceTree 中删除了该帐户,则应能够再次添加它。如果您没有删除该帐户,则在尝试从 repo 获取时,SourceTree 将要求您使用个人访问令牌进行身份验证。