Эгит в затмении отсутствует дерево

Похоже, у меня есть недостающая ошибка дерева. Чтобы быть справедливым, я просто полностью испортил свои локальные файлы на git, и мне надоело, и я удалил полный жесткий диск в своем репо и отменил его от удаленного мастера. Теперь я получаю следующую ошибку. Одна из первых вещей, которые я сделала, - создать локальную ветку для моей работы.

Скорее всего, я мог бы восстановить много своей работы, если бы я не удалял все, кроме эй, проходите время - правильно? (Это может показать мое состояние моего ума прямо сейчас с git и моим проектом тоже...)

Если это имеет значение, я делаю проект андроида.

Я читаю этот пост и кажется полезным, но я понятия не имею, как найти мой "a30df1173f14dea24df661f1eef749fed2f4e1ed" хэш sha1.

Выполнение

git ls-tree a30df1173f14dea24df661f1eef749fed2f4e1ed

Дает мне следующие

100755 blob 2851ba4fdf2a134f8fc97fd60b3045b73cd6039b    .DS_Store
100755 blob 3f9691c5dda29b09cb96060fd6ec7017f6c671d2    .classpath
100755 blob c50d3b4fe2f6221db617840561dc94d7690bb883    .gitignore
100755 blob 6b58f1723a252cfd314d108fadac4b71a4209c1c    .project
100755 blob 39f00018845d776de324707090d26c5153720e22    AndroidManifest.xml
100755 blob 94a9ed024d3859793618152ea559a168bbcbb5e2    COPYING
100755 blob c1853e4c312a938d5890f5f4e0844782429ba11e    default.properties
040000 tree 423accda532f8788f916b26b863ddf32e2896aa6    docs
160000 commit 0000000000000000000000000000000000000000  eagle vision
100755 blob 424f2604203eabd2310165b143b430326aa87ee7    ic_launcher-web.png
040000 tree 2b83cd828cd11a11e84a2d8f646dfa40de109827    libs
100644 blob 8a7b1fac8f8c12e925e56776f225730c4712f92a    lint.xml
040000 tree c0182f719fccf5fc8b0d7658c3d15fe4deac0d9e    plugins
100755 blob f2fe1559a217865a5454add526dcc446f892385b    proguard-project.txt
100755 blob 9ae01de96458dbded45d2a442c09c0f4d33e473a    project.properties
040000 tree 3c9446b3bb23eebe80942992ee03e01a7390ba80    res
040000 tree 895e957ccc4ee642127c25a3481d784302e44a70    src

Из всех них видение орла кажется странным со всеми этими 0:

160000 commit 0000000000000000000000000000000000000000 Орел видение

Не совсем уверен, где я собираюсь с этим. Попытка пройти через git faq не идет очень далеко.

Здесь вся ошибка:

eclipse.buildId=v22.0.0-675183
java.version=1.7.0_21
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product com.android.ide.eclipse.adt.package.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product com.android.ide.eclipse.adt.package.product

Error
Sun Oct 13 21:11:59 CDT 2013
Missing tree 2ec4e5b3e0e3d9ccc766fd1ed0dccaedcef3e53a

org.eclipse.jgit.errors.MissingObjectException: Missing tree 2ec4e5b3e0e3d9ccc766fd1ed0dccaedcef3e53a
    at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:127)
    at org.eclipse.jgit.treewalk.CanonicalTreeParser.reset(CanonicalTreeParser.java:201)
    at org.eclipse.jgit.treewalk.TreeWalk.parserFor(TreeWalk.java:984)
    at org.eclipse.jgit.treewalk.TreeWalk.addTree(TreeWalk.java:468)
    at org.eclipse.egit.core.synchronize.GitSyncCache.loadDataFromGit(GitSyncCache.java:130)
    at org.eclipse.egit.core.synchronize.GitSyncCache.getAllData(GitSyncCache.java:85)
    at org.eclipse.egit.core.synchronize.GitSyncCache.getAllData(GitSyncCache.java:63)
    at org.eclipse.egit.core.synchronize.GitResourceVariantTreeSubscriber.refresh(GitResourceVariantTreeSubscriber.java:180)
    at org.eclipse.team.core.subscribers.Subscriber.refresh(Subscriber.java:466)
    at org.eclipse.egit.core.synchronize.GitSubscriberMergeContext.handleRepositoryChange(GitSubscriberMergeContext.java:142)
    at org.eclipse.egit.core.synchronize.GitSubscriberMergeContext.access$0(GitSubscriberMergeContext.java:133)
    at org.eclipse.egit.core.synchronize.GitSubscriberMergeContext$1.indexDiffChanged(GitSubscriberMergeContext.java:68)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCache.notifyListeners(IndexDiffCache.java:98)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCache.access$0(IndexDiffCache.java:89)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCache$1.indexDiffChanged(IndexDiffCache.java:84)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry.notifyListeners(IndexDiffCacheEntry.java:425)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry.access$8(IndexDiffCacheEntry.java:417)
    at org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry$5.run(IndexDiffCacheEntry.java:358)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

Ответ 1

160000 является специальной записью для записи подмодуля.
SHA1 равен 40 нулям означает, что субмодуль удален (см. git-submodule.sh) или в неизвестное состояние:

Когда вы сравниваете что-то с состоянием дерева работ, а когда состояние дерева работ грязно, мы всегда показываем, что 0{40} означает "он грязный, и мы не знаем, что такое имя объекта этой вещи, пока вы не активируйте git -update-index (или git -add) it" (и в этот момент он перестанет быть грязным).
Для blobs (будь то обычный файл или символическая ссылка), это имеет преимущество, заключающееся в том, что не нужно запускать хэш-объект для получения имени объекта для объекта, который будет создан, если вы действительно сделали git -add it.

Когда мы проверяем, загрязнен ли он, мы уже делаем lstat (2) и знаем тип из этого, поэтому мы можем показать бит режима. Таким образом, вы увидите 100644, 100755 или 120000 для капель. Аналогично для подмодуля.

Для подмодуля мы могли бы прочитать значение из $sub/.git/HEAD, но более согласованно показывать 0 {40} на дереве рабочего дерева (обычно с правой стороны, если вы не используете -R).

Итак, проверьте, есть ли у вас .git/modules/asubmodule/HEAD.
Или попробуйте очистить запись подмодуля, а затем обновите этот подмодуль до URL-адреса орла.

Но ваше отсутствующее дерево, возможно, не связано с этой записью.