来自 VS Code 的 git push:“没有匿名写访问权限。身份验证失败”

use*_*146 10 git visual-studio-code

我正在学习 Github 本身的教程。我正在关注教你使用 Visual Studio Code 工作的那个。

我试图从 Visual Studio Code 推送一些东西,经过一段时间后,我收到以下错误:

remote: No anonymous write access.
fatal: Authentication failed for ....
Run Code Online (Sandbox Code Playgroud)

现在我正在向我的个人帐户推送一些东西。我试着用谷歌搜索(但我又是新手,所以我不完全理解所有的术语)我能找到的是 2FA 的问题(但在我的情况下是关闭的)和 Windows 凭据(但我检查过,我我的 Windows 凭据中没有任何 git)。

所以我不知所措。有没有人知道我可以尝试/检查的其他东西?

seq*_*nce 55

更简单的方法是使用GitHub 上的个人访问令牌可以通过转到您的 GitHub 帐户 \xe2\x86\x92设置\xe2\x86\x92开发人员设置\xe2\x86\x92个人访问令牌\xe2\x86\x92生成个人访问令牌来设置此功能。进行访问控制选择、生成、然后复制并保存新令牌。之后,转到您的 Git 项目目录并在终端中输入:

\n

git remote set-url origin https://YOUR_TOKEN_HERE@github.com/your_user/your_project.git

\n

从现在开始,您可以git push通过终端或 Visual Studio Code 轻松完成此操作。

\n

  • 感谢您更新您的答案。有用! (2认同)
  • 虽然这看起来不是最理想或“正确”的解决方案,但我无法否认结果,因为它解决了我的问题,而其他方法都不起作用并且我无法找出问题。我仍然不明白我的设置出了什么问题或者为什么失败,但至少现在它正在工作,非常感谢。 (2认同)

小智 9

雅虎!终于解决了一个问题

这仅适用于那些在 VS Code 的上次更新中遇到此问题的人。(2021年11月15日或前后)

Github 社区上的问题#LINK

无需降级 VS Code 或 git 版本。基本上我从对我有用的修复中了解到的。认为这是 GitHub 和 Git 身份验证之间的冲突。

因此,您可以尝试以下几个步骤,希望它也能适合您。

在 VS CODE 中打开您的设置。

  1. 从左下角(设置图标)打开设置或按CTRL+,
  2. 输入Authentication搜索选项,它会显示类似这样的内容。 在此输入图像描述
  3. 您需要取消选中 Git:终端身份验证。(例如) 在此输入图像描述
  4. 仅 Github:应检查 Github 身份验证。

现在您需要关闭打开的终端(如果有)。打开新终端并尝试使用 git 命令。 在此输入图像描述

就我而言,一切正常。希望这也适合你。:微微一笑:


Gin*_*pin 6

VS Code 在提交并推送到远程存储库时仅使用您环境的 git 配置。因此,在担心 VS Code 之前,您必须首先确保为 Git 正确设置了本地环境。

第一,我建议通过Git 文档中的First-Time Git Setup。最重要的部分是设置您的 Git 身份:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Run Code Online (Sandbox Code Playgroud)

第二,我建议在您的本地机器和您的 Github 配置文件上设置 SSH 密钥。
Github 有一个关于使用 SSH 连接到 GitHub的完整教程。

基本上:

  1. 在您的机器上生成 SSH 密钥(生成新的 SSH 密钥
    • 那里有一个步骤指定 -C "your_email@example.com"
    • 确保它与user.email您设置为 Git 身份的 git 匹配
  2. SSH 和 GPG 密钥部分将该 SSH 密钥添加到您的 Github 帐户

您可以通过在终端中输入以下内容来检查您的 SSH 密钥是否有效:

$ ssh -T git@github.com
Hi ginomempin! You've successfully authenticated, but GitHub does not provide shell access.
Run Code Online (Sandbox Code Playgroud)

现在,

  1. 克隆你的仓库
    • 确保在 Github 中选择Clone with SSH选项 在此处输入图片说明
  2. 在 VS Code 中,确保使用相同的git@github.com:..... URL 在此处输入图片说明

我的 Windows 凭据中没有任何 git

您可以选择完全禁用它,因为我发现 Windows 凭据管理器可能会导致问题,并且使用 SSH 更“稳定”。请参阅如何禁用适用于 Windows 的 Git 凭证管理器?.

  • 如果您已经使用 https 进行克隆,则可以通过以下方式切换远程协议: `git remote set-url origin git@github.com:USERNAME/REPO.git` (2认同)

小智 5

设置 SSH 密钥后,您需要在 IDE 中输入此密钥(我使用的是 Visual Studio Code)

git remote -v
Run Code Online (Sandbox Code Playgroud)

这将显示您当前的远程分支 URL,但您不能再使用它。

要更新它,请在控制台中输入此内容

git remote set-url origin git@github.com:YOURUSERNAME/reponame.git
Run Code Online (Sandbox Code Playgroud)

现在尝试推动或做出任何改变

注意:从我的角度来看,我认为您也必须对所有现有(旧)存储库执行此操作。

  • 这对我有用。`git remote -v` 的输出给了我 `origin https://github.com/*my_github_username*/*github_reponame*.git (fetch) ...`。我使用了`git remote set-url origin git@github.com:YOURUSERNAME/reponame.git`(我直接从我的github repo页面复制了相应的部分(`git@github.com:YOURUSERNAME/reponame.git`)代码”部分/选项卡 > 然后单击带有下拉菜单的绿色大“代码”按钮 > 然后选择“SSH”) (2认同)