Восстановить большие двоичные объекты, у которых ложное окончание строки преобразовано с помощью git - PullRequest
0 голосов
/ 28 мая 2020

У меня есть история в git, где в коммите A у нас есть .gitattributes файлы с

* text eol=lf

, что явно неверно, потому что оно будет преобразовано все пути к LF даже двоичным файлам перед проверкой. Так что это случилось, и мне интересно, поврежден ли двоичный файл / blob F в истории (из-за того, что crlf преобразован в lf), может быть восстановлен так, что преобразование будет отменено.

Если эта процедура применимо Я бы применил его в git filter-branch как-нибудь ...

PS: Я создал новую историю с исправленным файлом .gitattribute везде на master

* text=auto eol=lf

сделал новая сиротская ветка new-master и перебазировала на нее всю master. Но это не решает проблему, файл / капли, конечно, остались поврежденными ...

1 Ответ

0 голосов
/ 28 мая 2020

Если данные, хранящиеся в репозитории Git, не являются данными, которые вы хотели сохранить, никакая команда Git не сможет найти данные, которые вы сделали означает хранить.

Другими словами: нет, нет способа получить правильные данные из неправильных. Если у вас где-то есть правильные данные, вы получите правильные данные.

Все, что может git filter-branch (или новый и улучшенный git filter-repo), - это копировать каждую исходную фиксацию с некоторым набором фильтров, применяемых по ходу. Существующий исходный коммит с исходным снимком остается в репозитории некоторое время; новый коммит с его новым моментальным снимком - это тот, который вы найдете при использовании обновленных имен веток для поиска коммитов.

...