2014-01-14 4 views
7

Я получаю эти ошибки при выполнении git fsck --full --no-dangling в удаленном репозитории. (Сервер GIT в)Плохая обработка файлов sha1

[email protected]:/var/git/REPOSITORY.git$ git fsck --full --no-dangling 
bad sha1 file: ./objects/15/19d8eeacc8d0cd603bd87d2034508b1ffaffa8_28537991145d7e9d87b68335e9b82c2f788cb4fc 
bad sha1 file: ./objects/32/4f425bcfe23d9f38b154427eeb9c800d109365_6df2d745fff22839759b25cc83f8d742c2e64086 
bad sha1 file: ./objects/42/9225fd8d895084051189dc6478343d54fe41c8_28537991145d7e9d87b68335e9b82c2f788cb4fc 
bad sha1 file: ./objects/46/798e4a01a5a7eaf2b203f6d1634d603497041b_6df2d745fff22839759b25cc83f8d742c2e64086 
bad sha1 file: ./objects/bc/fb9d62ac05d5203249caa0e7e9cb5d1c32daba_6df2d745fff22839759b25cc83f8d742c2e64086 
bad sha1 file: ./objects/cd/477947092b4f20feba8c37df974027b1864215_6df2d745fff22839759b25cc83f8d742c2e64086 
Checking object directories: 100% (256/256), done. 
Checking objects: 100% (136737/136737), done. 
missing commit 590ebc3ac022491d7f11c483480fa9530adc91e8 
missing tree bab1d768f0d4f6a02e0a30a6c446afaeabc4aa71 

Для каждого файла плохой sha1 есть другой файл, который начинается с тем же именем, но оленья кожа имеет подчеркивание _, а затем другой текст. файлы имеют одинаковый размер файла, но разные дата и время.

Пример из двух файлов:

./objects/15/19d8eeacc8d0cd603bd87d2034508b1ffaffa8_28537991145d7e9d87b68335e9b82c2f788cb4fc 
./objects/15/19d8eeacc8d0cd603bd87d2034508b1ffaffa8 

Я прилагаю снимки экрана двух случаях из 6, потому что они все равно:

Скриншот 1: File1

Скриншот 2: File 2 Могу ли я удалить дубликаты, что произойдет?

* любые идеи о недостающем коммите \ дерево?

+0

Если вы работаете с удаленным репозиторием, попробуйте ввести сервер, на котором расположен этот репозиторий, и сравнить эти файлы. попробуйте запустить 'git fsck' на удаленном сервере, если все правильно, просто удалите локальный репозиторий и сделайте' git clone' –

+0

проблема на пульте дистанционного управления, ошибки на пульте дистанционного управления. – Mike

ответ

2

Во-первых, так как этот вопрос находится на сервере, проверьте, если у вас нет каких-либо клона, который бы не показывать один и тот же вопрос: вы могли бы сделать клон местного голую репо из этого клона, и заменить "[email protected]:/var/git/REPOSITORY.git »с копией упомянутого голого репо.

Во-вторых, на сервере:
Просто сделайте копию [email protected]:/var/git/REPOSITORY.git в [email protected]:/var/git/REPOSITORY2.git, удалите эти «_» файлы и посмотреть, если ошибка не будет устранена.
Мое предположение: недостающие фиксации и дерева по-прежнему будут там.
Это означает, что вам нужно искать тех, кто в клоне, чтобы восстановить их, как я рекомендую в «How to diagnose and fix git fatal: unable to read tree».
Подробнее на "How to fix corrupted git repository?".

+0

Странно, пропавшее дерево и зафиксировать как-то незаметно, я действительно этого не понимаю! удаление файлов sha1 было исправлено, потому что они ни к чему не привязались. Безопасно ли теперь перезаписывать новый REPO_TEST.GIT с папками REPO.GIT? просто удалить оригинал и переименовать тест на оригинальное имя? все подключенные к нему пользователи останутся подключенными, как если бы они были старыми? – Mike

+0

@ user1725378 Я бы порекомендовал * перемещение * старый, и * переименование * нового, а не переписывание. – VonC

Смежные вопросы