вы могли бы просто создать простую небольшую логическую функцию и иметь переменную информации каталога, чтобы получить каталоги с заданного пути. если это происходит без проблем, верните true, если исключение - это дескриптор, верните false или разделите предложение исключения на вспомогательные исключения и получите код ошибки.
В моем случае для меня не было важно сохранить локальную историю фиксации. Таким образом, если это относится к Вам также, можно сделать это как быструю альтернативу решениям выше:
Вы в основном просто заменяете поврежденный .git/
каталог с чистым.
Позволяет, предполагают следующий каталог для Вашего проекта с поврежденным мерзавцем: projects/corrupt_git/
cp projects/corrupt_git projects/backup
- (дополнительно) делают резервное копирование git clone [repo URL] projects/clean_git
- так, чтобы Вы добрались projects/clean_git
rm -rf corrupt_git/.git/
- удаляют поврежденную .git папку mv clean_git/.git/ corrupt_git/
- перемещение чистит мерзавца к corrupt_git/.git
git status
в projects/corrupt_git
- чтобы удостовериться, что это работало