Как проверить статус голого репо в git

У меня есть клонированное репо, и мне нужно проверить, не сломано ли репо. Я попытался запустить git status, но он говорит:

fatal: this operation must be run in a work tree. 

Я также пытался запустить git gc, и он возвращает ненулевое значение, если репо не работает. Но это занимает чертовски много времени, так как размер репо большой.

Любой альтернативный подход в этом?

Обновление: я пробовал git fsck, и это также занимает примерно столько же времени, сколько git gc. Размер репо почти ~16 гб :(


person Muni    schedule 27.07.2021    source источник
comment
если, проверяя репо, вы имеете в виду, что хотите проверить, что все коммиты имеют действительных родителей и действительный контент, то я боюсь, что вам придется заплатить стоимость, чтобы копаться в этих 16 ГБ - следовательно, время, затраченное на git gc или git fsck. Вы имеете в виду подходящий меньший масштаб?   -  person LeGEC    schedule 27.07.2021


Ответы (2)


Вероятно, вы ищете git fsck:

git fsck --verbose --full --strict
person Peter Badida    schedule 27.07.2021

Имея достаточно свежий Git (2.30+), вы также можете попробовать git maintenance command.

В частности: git maintenance start

Если он запускается успешно, репозиторий не сломан.

person VonC    schedule 27.07.2021