创建新 GitHub 帐户后无法从私人仓库 clone/fetch
Unable to clone/fetch from private repo after creating new GitHub account
我是一名自由开发者,使用 git 和 SourceTree。
过去几个月我一直在为一个拥有私人 GitHub 存储库的特定客户工作,在那段时间我一直在使用 SourceTree 将更改拉入和推送到 GitHub .
我有另一个客户希望我创建一个 'Intro to Programming' 课程,而我(愚蠢地)只是使用我的正常 OS environment/user 而不是创建一个新的 OS 用户。我创建了一个新的 'demo' GitHub 用户并将其连接到 SourceTree,这样我就可以向学生展示如何从 GitHub 存储库中推送和拉取。我还关闭了其他客户存储库的 SourceTree 选项卡。
我现在正试图重新开始处理我的第一个客户的项目,但我发现自己无法从远程存储库 fetch/pull,甚至无法重新克隆存储库。
我在尝试获取或克隆时看到的错误是:
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch --prune origin
remote: Repository not found.
fatal: repository 'https://github.com/org_name/repo_name/' not found
Completed with errors, see above.
我尝试过的事情
我已经:
- 在我的浏览器中退出了演示 GitHub 帐户,
- 从 SourceTree 中删除了模拟账户,
- 重新启动我的电脑
- 删除了我的 Windows 凭据管理器中的任何 git/GitHub-related 条目,并在尝试获取
时提示登录
- 卸载并重新安装 SourceTree
- 我确认我可以使用 HTTPS URL 和 SSH URL.
克隆我的 GitHub 帐户下的另一个私有存储库
我认为正在发生的事情
起初我怀疑 git 在尝试访问私人仓库时仍在以某种方式使用该模拟账户。但是,我能够从我的 GitHub 帐户添加另一个 GitHub 存储库到 SourceTree 并从中获取而不会出现问题,如果 git 或 SourceTree 仍在使用我的,这可能不会发生模拟账户的凭据。
此时,我怀疑我尝试连接到存储库的方式可能存在一些问题,但我不确定它可能是什么。
检查你的git config credential.helper
。
如果设置,它可能缓存了 GitHub 的错误用户凭据:您需要将其删除。
:
printf "Host=github.com\nusername=xxx\nprotocol=https" | \
git 凭据管理器核心擦除
printf "Host=github.com\nusername=xxx\nprotocol=https" | \
git 凭据-凭据-osxkeychain 擦除
(详见“Remove credentials from Git”)
我终于可以使用 SSH URL。
我从来没有让它与 HTTPS 来源一起使用 URL。我不知道为什么它不能那样工作,那一定是我以前使用它的方式,因为我没有在我的 GitHub 帐户上设置任何 SSH 密钥,所以我不能一直在使用 SSH 来源 URL.
以下是对我有用的设置:
我还必须将 Putty 生成的 SSH 密钥转换为 OpenSSH 格式并将其添加到我的 GitHub 帐户。
我通过将遥控器 URL 更改为:
来让它工作
https://my-github-用户名@github.com/org/repo
我是一名自由开发者,使用 git 和 SourceTree。
过去几个月我一直在为一个拥有私人 GitHub 存储库的特定客户工作,在那段时间我一直在使用 SourceTree 将更改拉入和推送到 GitHub .
我有另一个客户希望我创建一个 'Intro to Programming' 课程,而我(愚蠢地)只是使用我的正常 OS environment/user 而不是创建一个新的 OS 用户。我创建了一个新的 'demo' GitHub 用户并将其连接到 SourceTree,这样我就可以向学生展示如何从 GitHub 存储库中推送和拉取。我还关闭了其他客户存储库的 SourceTree 选项卡。
我现在正试图重新开始处理我的第一个客户的项目,但我发现自己无法从远程存储库 fetch/pull,甚至无法重新克隆存储库。
我在尝试获取或克隆时看到的错误是:
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch --prune origin remote: Repository not found. fatal: repository 'https://github.com/org_name/repo_name/' not found
Completed with errors, see above.
我尝试过的事情
我已经:
- 在我的浏览器中退出了演示 GitHub 帐户,
- 从 SourceTree 中删除了模拟账户,
- 重新启动我的电脑
- 删除了我的 Windows 凭据管理器中的任何 git/GitHub-related 条目,并在尝试获取 时提示登录
- 卸载并重新安装 SourceTree
- 我确认我可以使用 HTTPS URL 和 SSH URL. 克隆我的 GitHub 帐户下的另一个私有存储库
我认为正在发生的事情
起初我怀疑 git 在尝试访问私人仓库时仍在以某种方式使用该模拟账户。但是,我能够从我的 GitHub 帐户添加另一个 GitHub 存储库到 SourceTree 并从中获取而不会出现问题,如果 git 或 SourceTree 仍在使用我的,这可能不会发生模拟账户的凭据。
此时,我怀疑我尝试连接到存储库的方式可能存在一些问题,但我不确定它可能是什么。
检查你的git config credential.helper
。
如果设置,它可能缓存了 GitHub 的错误用户凭据:您需要将其删除。
printf "Host=github.com\nusername=xxx\nprotocol=https" | \
git 凭据管理器核心擦除
printf "Host=github.com\nusername=xxx\nprotocol=https" | \
git 凭据-凭据-osxkeychain 擦除
(详见“Remove credentials from Git”)
我终于可以使用 SSH URL。
我从来没有让它与 HTTPS 来源一起使用 URL。我不知道为什么它不能那样工作,那一定是我以前使用它的方式,因为我没有在我的 GitHub 帐户上设置任何 SSH 密钥,所以我不能一直在使用 SSH 来源 URL.
以下是对我有用的设置:
我还必须将 Putty 生成的 SSH 密钥转换为 OpenSSH 格式并将其添加到我的 GitHub 帐户。
我通过将遥控器 URL 更改为:
来让它工作https://my-github-用户名@github.com/org/repo