Я использую git 1.6.4.2.Сборка мусора завершается с ошибкой, говоря «ошибка: невозможно найти <SHA1>
».
Мне удалось определить, что отсутствующий объект является BLOB-объектом, и я никак не могу вернуть файл BLOB-объекта.Похоже, что 2 сценария, которые запускают «git add» и «git commit», выполнялись одновременно и сумели помешать друг другу, так что один зафиксировал более новую версию файла, чем другой, и блоб более старой версии исчез.
Итак, сейчас я пытаюсь откатить мой репозиторий, чтобы извлечь коммит, который ссылается на дерево, ссылающееся на отсутствующий BLOB-объект.
Я знаю, какая ветвь была коммитом.на, поэтому я запустил «git reset», чтобы перемотать к родителю коммитов duff.И я знаю, что ветка была объединена где-то еще, поэтому я тоже перемотал эту ветку.Так что, насколько я знаю, ни на что не ссылаются duff commit / tree / blob.Но если я запускаю git prune --expire = now, а затем git gc, я все равно получаю ошибку об отсутствующем объекте.
Поэтому мой вопрос таков: как я могу запросить базу данных git, чтобы найти каждый объект деревав котором содержится идентификатор блэйфа?И как мне тогда узнать, что заставляет git prune его сохранить?
Tricky !!
Спасибо, Кевин