Подтвердить что ты не робот

Git refs/remotes/origin/master не указывает на действительный объект

После последнего слияния с главной ветвью моего репозитория Git я потерял способность клонировать репозиторий.

Cloning into test-repository...
remote: Counting objects: 126084, done.
remote: Compressing objects: 100% (28327/28327), done.
Receiving objects: 100% (126084/126084), 132.63 MiB | 29.30 MiB/s, done.
remote: Total 126084 (delta 96101), reused 126078 (delta 96095)
Resolving deltas: 100% (96101/96101), done.
error: refs/remotes/origin/master does not point to a valid object!
error: Trying to write ref refs/heads/master with 
       nonexistant object 951aca8051823b2f202d30c9cb05401ef17618c6

Fisheye, средство размещения репозитория, сообщает:

Unable to fetch from remote repository:
/var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git
error: unable to find 0d998c99b6d01e8aabca72b1934802acf90b8fc9,
fatal: object 0d998c99b6d01e8aabca72b1934802acf90b8fc9 not found

Последняя фиксация в репозитории на главной ветке:

commit 0d998c99b6d01e8aabca72b1934802acf90b8fc9
Merge: a6ea4b3 1f373a9
Date:   Fri Dec 14 13:57:24 2012 +0200

Merge branch 'new_error_code'

Я пробовал:

cd /var/atlassian/application-data/fisheye/managed-repos/MYREPONAME.git
git gc
git fsck --full
git reflog expire --expire=0 --all
git update-ref
git gc --aggressive

Следующие вопросы не помогли мне:

4b9b3361

Ответ 1

git gc
git fsck --full
git reflog expire --expire=0 --all
git update-ref -d 0d998c99b6d01e8aabca72b1934802acf90b8fc9
git gc --aggressive
git remote update --prune

и это сработало!

Ответ 2

Обычно вы можете:

git reflog master

Это даст вам список последних знанных позиций, на которые указал мастер.

Как только вы это знаете, вы можете создать временную ветвь для более старой версии мастера, т.е.

git branch temp [email protected]{1}

Затем проверьте температуру и посмотрите, находится ли она в правильном порядке. Если вы ничего не видите там, то команды, которые вы делали ранее (удалите reflog, удалите оборванные коммиты и т.д.), Вероятно, уничтожили все способы восстановления.