git - 重新启用 Visual Studio Code GitHub 身份验证

Visual Studio Code 内置 Git SCM 完全没有我能想到的原因停止工作,只返回身份验证失败,不仅在 Visual Studio Code 中,而且在终端中也是如此。

奇怪的是昨晚它工作正常。只是想知道今天它不再工作了。

  • 我使用 Ubuntu 21.04 (多毛河马),我在 GitHub 中启用了双因素身份验证。
  • 我尝试创建个人访问 token ,但找不到任何地方放置它,以便 Visual Studio Code 中的 Git SCM 能够在不公开它的情况下在所有存储库中正常工作。

Visual Studio Code Git SCM 停止工作我的意思是:

  • 无法使用 Visual Studio Code 中的内置 Git 扩展 pull/推送到远程存储库
  • 无法为私有(private)存储库发出克隆命令

如何在不使用电子邮件和密码或在远程 URL 路径前附加访问 token 的情况下重新启用扩展功能 as specified here ?

PS:我有 GitHub Copilot Git 扩展已启用,并且已在 Git 中正确验证(正常工作)

最佳答案

首先检查您的远程 URL 是否为 HTTPS(在命令行中:一旦它在那里工作,您可以切换回 VSCode):

cd /path/to/repo
git remote -v

如果是 HTTPS,请检查用于缓存您的凭据的凭据助手。旧密码可能会被缓存,不再有效,因为现在只有 PAT (Personnal Access Token)允许(在 Aug. 2021 policy change 之后)。

即使在简单的 Windows CMD shell(不需要 git bash)中,只要您设置了 PATH,下面的操作就可以工作:

# For Windows only
# Replace C:\Program Files\Git by the folder path where your Git is installed
set "GH=C:\Program Files\Git"  
set "PATH=%GH%\bin;%GH%\cmd;%GH%\usr\bin;%GH%\mingw64\bin;%GH%\mingw64\libexec\git-core;%PATH%"

然后,从您想要的任何 shell,因为引用了 Git PATH:

git config --global credential.helper
xxx
printf "host=github.com\nprotocol=https" | git-credential-xxx get

(用 git config --global credential.helper 的输出替换 xxx)

如果这是错误的“密码”(即,不是您当前的 token ),请删除旧密码并存储新密码。

printf "host=github.com\nprotocol=https" | git-credential-xxx erase
printf "host=github.com\nprotocol=https\nusername=MyGitHubUserAccount\npassword=yyy" | git-credential-xxx store

(同样,printf 也适用于 Windows CMD,如果 %PATH% 如前所述设置)

https://stackoverflow.com/questions/69954625/

相关文章:

ruby-on-rails - `gem install sqlite3` 告诉我 `brew in

javascript - 使用 Vite 构建的 React.js 不包含 service-work

c++ - 如何使用 Boost 在缓冲区中进行二进制序列化

flutter - Vscode 不将 chrome 显示为设备

r - 使用 spsurvey 在多边形内绘制 GRTS 点

memory-management - Datadog % 内存使用率和 RSS 内存

python - 如果使用 native ORM,如何避免 Django Rest API 中的 S

python - 如何将cookie从flask设置为reactjs

reactjs - “开始故事书”不被识别为内部或外部命令,

clang-tidy - 如何在 `clang-apply-replacements` 生成的变更集