35

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

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

remote: No anonymous write access.
fatal: Authentication failed for ....

现在我正在向我的个人帐户推送一些内容。我试图用谷歌搜索(但我还是新手,所以我不完全理解所有术语),我能找到的是两因素身份验证(但在我的情况下是关闭的)和 Windows 凭据(但我检查并且我的 Windows 凭据中没有任何 Git)。

所以我很茫然。我还能尝试或检查什么?

4

7 回答 7

22

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

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

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

于 2021-11-16T23:31:53.660 回答
10

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

第二,我建议在你的本地机器和你的 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.

现在,

  1. 克隆你的仓库
    • 确保在 GitHub 中选择使用 SSH 克隆选项在此处输入图像描述
  2. 在 VS Code 中,确保使用相同的git@github.com:..... URL 在此处输入图像描述

我的 Windows 凭据中没有任何 Git

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

于 2020-03-20T05:18:37.910 回答
6

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

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

Github 社区#LINK上的问题

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

因此,您可以尝试一些步骤,并希望它也能为您解决。

在 VS CODE 中打开设置。

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

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

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

于 2021-11-19T13:45:17.997 回答
3

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

git remote -v

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

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

git remote set-url origin git@github.com:YOURUSERNAME/reponame.git

现在尝试推送或进行任何更改

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

于 2021-11-16T21:50:02.833 回答
2

尝试使用 . 通过终端sudo git push。如果您有双重验证,请使用令牌而不是密码,如下所示:

“https://github.com”的用户名:<用户名>

“https://username@github.com”的密码:<token>

于 2021-11-16T02:05:04.973 回答
2

您需要回到旧版本的 Visual Studio Code,一切都会好起来的,所有问题都会得到解决。似乎问题出在最新版本的 Visual Studio Code 中,我希望它会得到解决。我正在使用 Linux,一个 Ubuntu 发行版。

2021 年 9 月(1.61 版)

在此处输入图像描述

于 2021-11-15T11:53:41.133 回答
0

我所学到的是,您将存储库克隆到 vs-code 中的 ssh 终端中。你可以做的第一件事是使用 gitbash 终端,它通常有这个符号“>”,而不是 bash 终端,它有一个类似立方体的符号。

因此,在克隆存储库之前,请确保您使用的是 gitbash 终端,因此,为什么会出现问题。这就是我所做的。因此,既然您使用了 bash,我们就必须使用“ssh”。

第一步,将此命令写入您克隆的存储库中

$ git config --global user.name "username in github"
$ git config --global user.email "email used in gihub"

第二步

耐心地遵循这个文档

当您到达文档中的以下步骤时,请继续执行以下操作;

步骤 2 将您的 SSH 私钥添加到 ssh-agent。如果您使用不同的名称创建了密钥,或者如果您要添加具有不同名称的现有密钥,请将命令中的 id_ed25519 替换为您的私钥文件的名称。

$ ssh-add ~/.ssh/id_ed25519

而不是输入这个命令: $ ssh-add ~/.ssh/id_ed25519

使用这个:ssh-add,

它会提示您输入释义或其他内容。键入它。

然后通过运行以下代码确保您已成功添加 ssh 密钥:

ls -al ~/.ssh

尝试并 cd 到 ssh 的目录

你应该看到这样的东西:

-rw--- 1 barry barry 465 Nov 1 07:47 id_ed23333
-rw--  1 jospeh jose 115 Nov 1 09:47 id_ed23333.pub

尝试运行以下命令:

cat id_ed23333.pub

它会给你;您的 ssh 密钥将其复制并转到您的 github 帐户。在此之后转到您的存储库单击“代码”,您应该看到 http /ssh 单击“ssh”,它应该显示您是否需要添加 ssh 密钥单击添加密钥,将密钥命名为您想要的任何名称并粘贴密钥您复制然后添加密钥。

返回 vscode 并重新运行通常的代码。

git add .
git commit -m "message"
git push
于 2021-11-18T11:01:28.720 回答