【问题标题】:EGIT Can't connect to any repository - Missing unknownEGIT 无法连接到任何存储库 - 丢失未知
【发布时间】:2021-12-05 21:43:36
【问题描述】:

我刚刚在 GitHub 上创建了一个新存储库,并尝试最初推送我的本地 Java 项目。
我在我的 GitHub 帐户中添加了 ssh 密钥,我认为它被 Eclipse 正确引用了。

我只在尝试推送时收到此错误消息:

Can't connect to any repository:
git@github.com:MaximStein/MyProject.git
(git@github.com:MaximStein/MyProject.git: Missing unknown
366362as232d670123a2267b4879bbd01d142426)

有什么想法吗?

【问题讨论】:

  • 该帐户下是否存在该项目?在它出现之前你不能推到那里。
  • 你关注these steps了吗?你只有一个 GitHub 项目,还是你所有的 GitHub 项目都有这个?
  • 你有哪个 EGit/JGit 版本?有一个问题导致 Missing unknown 错误,但该问题已在四年前修复:bugs.eclipse.org/bugs/show_bug.cgi?id=470318
  • @Maxim 你解决了这个问题吗?

标签: eclipse github egit


【解决方案1】:

您的 Git 存储库 似乎损坏或至少处于无效状态

根本原因似乎是Missing unknown 366362as232d670123a2267b4879bbd01d142426,这意味着某些东西(可能是HEAD)指向了不存在的散列为366362as232d670123a2267b4879bbd01d142426(将存储在文件.git/objects/36/6362as232d670123a2267b4879bbd01d142426中)的对象。

Git History 中,您可以右键单击 最后一次提交 并选择 重置 > 软(仅限 HEAD)。如果提交丢失,您可以通过 Git Reflog 视图恢复它们。

还要确保您的 Eclipse 和 EGit/JGit 是最新的(例如,there was an issue causing a Missing unknown error that has been fixed more than four years ago),并且在对命令行。

【讨论】:

    【解决方案2】:

    如果从命令行推送成功,请先尝试(这意味着您需要先安装 Git):

    • 检查你是否被ssh -Tv git@github.com正确识别
    • 检查您的远程源 URL:git remote -v
    • 检查你的本地状态(git status:以确保你在一个分支上,这里我假设你是主要的,并且你至少做了一次提交)
    • 检查您的初始推送:git push -u origin main

    还要检查您是否声明了任何子模块(.gitmodules 文件),或查找任何嵌套的 Git 存储库(存储库根文件夹旁边的任何位置的.git 子文件夹)

    在调查 Egit/JGit 问题之前,排除(或不排除)git-core 问题是有帮助的。

    OP Maximthe comments 中确认:

    最好先在命令行中尝试一下。

    当我输入git status 时,它会显示“fatal: bad object HEAD”。
    我想我只为那个项目做了一次本地提交。

    确实,在分支中进行本地提交是推送任何内容的先决条件。
    在你的情况下,做一个git branch -avv 来检查是否有。

    如果你已经推送了那个缺失的提交,假设你的主分支是main(不是master):

    git fetch origin
    git reset --soft origin/main
    

    【讨论】:

    • 你的回答对我不起作用:'git' is not recognized as an internal or external command, operable program or batch file..
    • @howlger 是的,它确实假设你已经安装了 Git(因为 Eclipse,通过 Egit,正在使用 JGit,并且不直接依赖于 Git)
    • 您的回答对 EGit/JGit 没有意义。 ssh -Tv git@github.com 在与 EGit 一起使用时可能会失败,反之亦然,等等。将 EGit 问题当作 git-core 问题来回答是没有帮助的。
    • @howlger 首先,从命令行检查问题是否仍然存在。然后返回 IDE。这就是我解决此问题的方法。
    • 如果它在命令行上工作并不意味着它可以在 EGit 中工作,反之亦然。
    猜你喜欢
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2019-06-21
    • 2013-01-07
    • 2014-11-03
    • 1970-01-01
    相关资源
    最近更新 更多