GitHub обычно запускает fsck
на всех новых объектах, чтобы предотвратить удаление поврежденных или вредоносных объектов. Это также относится и к большинству других хостинговых сайтов. Однако, если вы импортируете проект с существующей проблемой, они могут иногда снять ограничение для первоначального импорта, если вы с ними свяжетесь.
Если вы это сделаете и они скажут, что не могут, вы можете переписать данные, используя что-то вроде следующего:
$ git init ../new-repo
$ git fast-export --all | (cd ../new-repo && git fast-import && git checkout)
Это перезапишет историю, чтобы она содержала только допустимые входные данные и лишило законной силы любые подписи на тегах после этой точки, а также изменило бы идентификаторы объекта. Возможно, вам потребуется отредактировать поток из git fast-export --all
, чтобы вручную удалить байт NUL; если это так, вы можете перенаправить его в файл и отредактировать этот файл, а затем отправить его на git fast-import
в новом репо.