nulInCommit: байт NUL в теле объекта фиксации - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь экспортировать один из моих проектов из GitLab в GitHub, используя командную строку, используя эти шаги. [Перенос проекта по командной строке] (https://help.github.com/en/github/importing-your-projects-to-github/importing-a-git-repository-using-the-command-line)

Однако во время pu sh миграция завершается неудачно в удаленный репозиторий, и ошибка « nulInCommit: NUL byte в зафиксировать тело объекта". Это происходит из-за байта NUL в одном из объектов истории фиксации.

Я знаю ошибку байта NUL, с которой мы сталкиваемся в сообщении фиксации, которое мы можем перефразировать с помощью rebase, но эта ошибка показывает, что ошибка находится в теле объекта а также указанный мной c коммит - это коммит слияния , и поэтому я не могу перебазировать / перефразировать или изменить его в истории коммитов.

Может кто-нибудь помочь мне с тем, как исправить это в истории коммитов Git проекта?

Checking object directories: 100% (256/256), done.
warning in commit 8affc08283444c3fe5c8a748e113bfd3545512dd: nulInCommit: NUL byte in the commit object body
Checking objects: 100% (117117/117117), done.```

1 Ответ

0 голосов
/ 25 марта 2020

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 в новом репо.

...