Git Remote Update не удалось.Но успех после смены порядка - PullRequest
0 голосов
/ 22 октября 2018

До сегодняшнего дня сервер работает нормально.Но сегодня я звоню

git remote update

Сообщение об ошибке показывает

Fetching A
Fetching B
fatal: internal server error
remote: internal server error 
fatal: protocol error: bad pack header
error: Could not fetch B

Странно то, что я могу обновить B после того, как яСначала удалите пульт.Затем я добавляю B remote и снова вызываю update.Два обновления сервера успешно.

Я могу сообщать об этой ситуации каждый раз.Основной репозиторий находится на A

  1. Init Aserver repo
  2. Синхронизация проекта
  3. Добавление B remote
  4. вызов "git remote update"

Понятия не имею, как это произошло, и я благодарен, если кто-нибудь подскажет мне, как решить эту проблему.

1 Ответ

0 голосов
/ 22 октября 2018

Ошибка указывает на то, что хранилище на сервере B. повреждено.

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

Если хранилище на B поврежден - его можно проверить, войдя на сервер B и используя git fsck в рассматриваемом репозитории, - затем следует заменить его хорошей копией, найденной в другом месте, если это возможно.

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