Git fatal: не удалось прочитать объект xxx: недопустимый аргумент

Я получаю следующую ошибку, если я вытаскиваю для извлечения из удаленного

$ git pull
remote: Counting objects: 85, done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 85 (delta 63), reused 69 (delta 48)
Unpacking objects: 100% (85/85), done.
error: inflate: data stream error (unknown compression method)
fatal: failed to read object 8b0fd4094630fea108b60faa15535ffbc85d87cb: Invalid argument
error: http://myremoterepo.com/project.git did not send all necessary objects

Я могу совершить локально. Когда я проверяю статус:

> $ git status On branch vikas Your branch is based on 'origin/master',
> but the upstream is gone.   (use "git branch --unset-upstream" to
> fixup) nothing to commit, working directory clean

Ответы

Ответ 1

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

Я смог совершить любые изменения в любом из моих локальных ветвей. Это означает, что мой файл пакета не поврежден, но некоторые ссылки неверны.

Сначала создайте резервную копию .git. Затем я использую команду git fsck

$ git fsck --full
error: inflate: data stream error (unknown compression method)
error: unable to unpack 38fe6f16c7e8246d61150f0bc42629dbb532b5ce header
error: inflate: data stream error (unknown compression method)
fatal: loose object 38fe6f16c7e8246d61150f0bc42629dbb532b5ce (stored in .git/objects/38/fe6f16c7e8246d61150f0bc42629dbb532b5ce) is corrupt

Я удалил файл .git/objects/38/fe6f16c7e8246d61150f0bc42629dbb532b5ce и продолжал эти шаги, пока не получаю следующий вывод:

$ git fsck --full
Checking object directories: 100% (256/256), done.
Checking objects: 100% (168543/168543), done.
error: refs/remotes/origin/staging: invalid sha1 pointer 0000000000000000000000000000000000000000
error: refs/remotes/origin/development: invalid sha1 pointer 0000000000000000000000000000000000000000
error: refs/remotes/origin/master: invalid sha1 pointer 0000000000000000000000000000000000000000
error: bad ref for refs/remotes/origin/staging
broken link from  commit 8b0fd4094630fea108b60faa15535ffbc85d87cb
              to  commit bac9f287963b1abb9e4b376b44b4a6500018e9fe
Checking connectivity: 169821, done.
dangling blob 750718546640b5b14c19cbdb9958d7bcc4b1114c
dangling blob e313786318d4c76004728f15a25c6fa68c88b67e
dangling blob ee3fd85992b48173f6c344a9f4a2f9667d4e1940
dangling blob cd4898a3ec525e559292337c0bc6b68a77270b52
dangling blob 9973506f35af1bf4e7790be57b02c70852843f92
dangling blob 47ca4080b9a528efe23c9f7dce994815f5f9162a
dangling blob 39d6807d215a7e74fb987d951a90e1d3e24a97eb
dangling blob c0d650286c3702d56b827eded27eaa9515212847
dangling commit 53db70d776ec7a59c10db106ef2585abea1ffddd
...

Теперь я удалил все три ref (.git/refs/remotes/origin/master, .git/refs/remotes/origin/staging, .git/refs/remotes/origin/development)

Voila! Теперь я смог тянуть и толкать!

P.S. узнал из здесь

Ответ 2

Я получил эту ошибку при запуске Malwarebytes. Перезагрузка ПК не помогла. Остановка процесса Malwarebytes исправила это. Поэтому попробуйте отключить/остановить антивирусный сканер, так как это также может привести к этой проблеме.