将 git credentialmanager 与 github 令牌一起用于 gists
Posted
技术标签:
【中文标题】将 git credentialmanager 与 github 令牌一起用于 gists【英文标题】:Using git credentialmanager with github tokens for gists 【发布时间】:2022-01-21 04:56:00 【问题描述】:我正在尝试将我的要点推送到 github 并尝试按照 this answer 使用凭据管理器以正确的方式进行操作
我认为遵循简单的工作流程就足够了
克隆一个要点 推送会询问凭据(用户名/令牌)不幸的是,它要么没那么简单,要么我在其他地方搞砸了。我得到的只是remote: Repository not found.
复制我的要点
C:\Users\lieve\AppData\Local\Temp>git clone https://gist.github.com/lkeersmaekers/4884d047b3b90ccd697a4d7ec21be49d
Cloning into '4884d047b3b90ccd697a4d7ec21be49d'...
remote: Enumerating objects: 9, done.
remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 9
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (2/2), done.
显示遥控器
C:\Users\lieve\AppData\Local\Temp>cd 4884d047b3b90ccd697a4d7ec21be49d
C:\Users\lieve\AppData\Local\Temp\4884d047b3b90ccd697a4d7ec21be49d>git remote -v
origin https://gist.github.com/lkeersmaekers/4884d047b3b90ccd697a4d7ec21be49d (fetch)
origin https://gist.github.com/lkeersmaekers/4884d047b3b90ccd697a4d7ec21be49d (push)
尝试推送失败且不询问任何凭据
C:\Users\lieve\AppData\Local\Temp\4884d047b3b90ccd697a4d7ec21be49d>git push
remote: Repository not found.
fatal: repository 'https://gist.github.com/lkeersmaekers/4884d047b3b90ccd697a4d7ec21be49d/' not found
凭据管理器诊断 C:\Users\lieve\AppData\Local\Temp\4884d047b3b90ccd697a4d7ec21be49d>git credential-manager-core 诊断 正在运行诊断...
[ OK ] Environment
[ OK ] File system
[ OK ] Networking
[ OK ] Git
[ OK ] Credential storage
[ OK ] Microsoft authentication (AAD/MSA)
[ OK ] GitHub API
Diagnostic summary: 7 passed, 0 skipped, 0 failed.
我可以通过将遥控器更改为 https://<token>@gist.github.com/lkeersmaekers/4884d047b3b90ccd697a4d7ec21be49d
来推动工作,但这正是凭据管理器应该处理的事情吗?
【问题讨论】:
【参考方案1】:Git Credential Manager (GCM)(以前的 GCM-core,最近更名为 GCM)依赖于 Windows Credential Manager。
打开上述 Windows 凭据管理器并检查是否有任何 github.com 条目,其中可能包含错误密码(例如您的实际密码而不是令牌)。
删除该条目,下一个git push
会询问您的凭据(然后使用令牌作为密码)。
【讨论】:
谢谢您,删除现有的 github 凭据有效。推送要求提供凭据(对话框中提供的选项对我来说根本不直观......通过取消对话框使其工作,因此 cli 询问用户名/密码(令牌)。 我现在在 credman 中有一个用户/令牌用于那个要点。似乎我现在拥有的所有其他存储库在推送(和失败)时都使用该凭证。这意味着我在为每个回购创建 PAT 时完全错了?每个用户/机器只能有一个 PAT 吗? @Lie 一个 PAT,带有范围 repo,应该足够了。以上是关于将 git credentialmanager 与 github 令牌一起用于 gists的主要内容,如果未能解决你的问题,请参考以下文章
不能将 `git mergetool` 与 `git am` 或 `git apply` 或 `patch` 一起使用