git fetch 成功,但 git fetch --all 给出公钥错误

问题描述 投票:0回答:1

我已成功从 GitLab 实例克隆存储库。该存储库称为

main
。 (它的命名早在大多数人开始使用
main
作为分支名称之前。这可能不是很相关,但可能值得一提以避免混淆。)

几天后,我希望其他团队成员的任何新更新都包含在我的本地副本中。所以我运行了以下命令:

git fetch --all

...并得到:

Fetching origin
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 4), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (5/5), 556 bytes | 185.00 KiB/s, done.
From git.mycompany.com:core/main
 * [new branch]              TIC-123_Remove_deprecations -> origin/TIC-123_Remove_deprecations
Fetching main
myfirstname.mylastname@git: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
error: could not fetch main

但有趣的是。运行成功:

git fetch

...给我这个:

remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 4), reused 0 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (5/5), 547 bytes | 68.00 KiB/s, done.
From git.mycompany.com:core/main
 * [new branch]              abc/TIC-101_change_wording_in_translations -> origin/abc/TIC-101_change_wording_in_translations

这不是一个公共存储库:根据我的理解,这两种情况都应该失败,或者两者都失败。

我已验证我的

~/.ssh/id_ed25519.pub
文件中的密钥与 GitLab 为我的用户显示的密钥相同,并且该密钥未过期。 (还有一个月的时间。)我还验证了该存储库仍然存在,并且我可以在 GitLab 中访问它。

知道如何重新获得此存储库的访问权限吗?

===

编辑:运行

git remote -v
显示以下内容:

main    ssh://git/core/main.git (fetch)
main    no-push (push)
origin  [email protected]:core/main.git (fetch)
origin  [email protected]:core/main.git (push)
git gitlab public-key git-fetch
1个回答
0
投票

您有 2 个遥控器:

main
,带有获取 URL
ssh://git/core/main.git
,禁用推送;和
origin
以及 URL
[email protected]:core/main.git
用于获取和推送。
git fetch --all
从两个遥控器获取,但其中一个似乎没有您的 SSH 密钥。您可以使用
git fetch main
进行检查。

您必须决定是否需要远程

main
;如果没有 — 用
git remote rm main
将其删除;如果是 - 在远程配置 SSH 密钥。

© www.soinside.com 2019 - 2024. All rights reserved.