使用 ssh 上的 Git 推送使用远程 url 而不是源名称失败 -(错误:找不到存储库)



嗨,我已经成功地用SSH设置了Git/Github。我知道这一点,因为我通过 Github 帮助指南来检查这一点,所有结果都通过了。

对于标记示例,我可以使用以下命令推送到我的 Github 存储库:

git push origin <tagname>

但是,当我尝试做同样的事情但通过 url 指定远程时,它失败了,告诉我存储库不存在:

git push git@github.com:<organisationname>/<reporname>.git <tagname>

我收到以下错误:

错误:找不到存储库。致命:无法从远程读取 存储 库。

请确保您具有正确的访问权限和存储库 存在。

git push 的文档确实支持这两种语法,所以我对为什么 URL 版本失败而"origin"版本没有感到困惑?

我发现了这个问题,它实际上很简单。为发布插件配置的用户与配置为访问存储库的用户不同。在我的问题中,我有一个示例,包括"git"作为用户,它实际上并不代表 maven 插件使用的 URL,它使用的是不同的用户。

因此,为了清楚起见,如果 ssh 访问基于"user1"并且 maven 发布插件配置为使用"user2"运行,那么这就是我收到失败推送的时候。

为了以用户模棱两可的方式处理这个问题,git 文档建议始终使用"git"用户推送。

例如,即使为"user1"设置了 ssh 密钥,在我的设置中,以下推送仍然成功:

git push git@github.com:<organisationname>/<reporname>.git <tagname>

但以下不是:

git push user2@github.com:<organisationname>/<reporname>.git <tagname>

现在我知道原因了,很明显,并且感觉很愚蠢,我最初在我的配置中错过了这一点。这也解释了为什么如果使用正确的 ssh 密钥在任何存储库设置上运行原始问题,正如注释所暗示的那样,可以正常工作。

相关内容

最新更新