Ошибка указывает на то, что хранилище на сервере B. повреждено.
Тот факт, что он работает, когда вы не обновляете A
, сначала предполагает, что обновление A
отбрасывает некоторые remote/A
ссылки, которыехранят хорошие копии коммитов в локальном хранилище.Избегая этого, вы сохраняете хорошие копии коммитов, которые вы должны были бы получить от B, так что когда вы спрашиваете B о его коммитах, ваш Git говорит: ах, у меня уже есть эти коммиты и, следовательно, ваш Git не спрашивает Git B для этих коммитов.Если теоретическое (пока не доказанное, но вероятное) повреждение на B влияет только на эти коммиты, то избегая запроса этих коммитов, вы избегаете демонстрации существования повреждения.
Если хранилище на B поврежден - его можно проверить, войдя на сервер B и используя git fsck
в рассматриваемом репозитории, - затем следует заменить его хорошей копией, найденной в другом месте, если это возможно.