недопустимый объект пытается клонировать хранилище - PullRequest
1 голос
/ 23 декабря 2011

git version 1.7.7.4

Я пошел клонировать из своего репозитория git и получил следующие ошибки:

remote: fatal: failed to read object a89f72f06a1f6f56f924b0e8ae9e33f477da8fcd: Invalid argument
error: git upload-pack: git-pack-objects died with error.
remote: aborting due to possible repository corruption on the remote side.
fatal: early EOF
fatal: git upload-pack: aborting due to possible repository corruption on the remote side.
fatal: index-pack failed

Итак, я пошел в сам репозиторий, чтобы проверить, и я получилэто:

git fsck
fatal: failed to read object 1aea37c864c6b5d0d60d6fc38117bc420671b692: Invalid argument

Затем я сделал это, чтобы попытаться решить проблему:

git gc --prune
fatal: failed to read object a89f72f06a1f6f56f924b0e8ae9e33f477da8fcd: Invalid argument
error: failed to run repack

Есть ли способ решить эту проблему?

Большое спасибо,

1 Ответ

1 голос
/ 23 декабря 2011

Git представляет все как набор объектов, либо на диске (как незакрепленный объект), либо в виде пакета (как сжатый объект). При клонировании git просматривает всю историю, чтобы определить, какие объекты отправлять. Если объект отсутствует, то это плохая новость - сообщение об ошибке верное, хранилище, скорее всего, повреждено (пропал потерянный объект или, возможно, весь пакет).

Вы МОЖЕТЕ иметь шанс, пытаясь клонировать другую ветвь. Если ходок не наткнется на этот пропавший объект, все будет в порядке. Если вы чувствуете себя безумно честолюбивым, вы можете заглянуть в структуры данных git storage и посмотреть, сможете ли вы собрать историю вручную (это будет невероятно сложно, но не невозможно).

В противном случае - это мерзавец. Если вы недавно сделали клоны, то поздравляю, у вас есть полная резервная копия. Нажмите от вашего клонированного репо, и недостающие объекты будут заполнены.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...