Итак. Я новичок в Git. И я думаю, что, возможно, сломал что-то сверх моей способности восстановить (ура).
Вот разбивка:
Я создал удаленный каталог и случайно включил ОЧЕНЬ большие файлы в первоначальный коммит. Это мешало людям что-либо делать с этим. (Сначала я не осознавал, внес изменения и некоторое время использовал каталог самостоятельно)
Я узнал, что простое удаление файлов и фиксация удаления не помогают людям, клонирующим каталог, и узнал об изменении истории с помощью таких команд, как:
git filter-branch --tree-filter 'rm -f public/vidos/*' HEAD
, который, насколько мне известно, удалит все файлы из публичного каталога / vidos / и избавит от них всю память.
Это, похоже, произошло. Я мог успешно клонировать вещи (без ошибок памяти), и в клонированной копии не было очень больших файлов.
Затем, сегодня утром (после того, как тупо убедившись, что я точно подобрал удаленный депозитарий (т.е. избавился от всех моих локальных вещей, думая, что это должно быть актуально для всего, кроме этих больших файлов), я начал работать с каталог и понял, что все файлы кажутся такими же, какими они были при первоначальной регистрации (никаких изменений, и есть МНОГИЕ вещи, которые я модифицировал, отображаются)
Я сделал
git log
для просмотра всех модификаций и просмотра всех моих коммитов (в том числе коммитов, которые удаляли супер большие файлы из каталога). Тогда я сделал
git reset hashcode
для отката на соответствующий git (с хэш-кодом, который я получил из журнала).
За исключением ... даже если он думает, что я на правильном коммите, ФАЙЛЫ все еще идентичны тем, которые я впервые сдал.
Я могу оглянуться назад на свою историю и УВИДЕТЬ, что я не фильтровал ветвления ни в одном из файлов, которые в настоящее время не изменены ... и я ДЕЙСТВИТЕЛЬНО не понимаю, почему моих изменений больше нет. Я зафиксировал ... Я нажал ... Я был почти уверен, что в удаленном репозитории были все мои изменения (мог их проверить (занял бы вечность и не хватило бы памяти, но я бы получил файлы) и ВИДЕТЬ изменения ... .... но я их больше не вижу.
Я сделал что-то глупое? Делает ли возня с историей вещи, о которых я не знал? Совершенно невозможно, что вещи, которые я описал, испортили мой репозиторий? (то есть я должен смотреть в совершенно ином направлении?)
Я действительно, ОЧЕНЬ хочу вернуть мои модификации ... тиражирование всего этого кода (и запоминание того, что я даже сделал) будет очень сложно. Есть ли что-нибудь, что я могу сделать?
РЕДАКТИРОВАТЬ:
~~~~~~~~~~~
Хорошо, сброс не работает, но делает:
git checkout hashcode
, кажется, работает просто отлично, и я вижу изменения в моем коде.
Но checkout означает, что я не в какой-либо ветке, и я не могу, чтобы они зафиксировали эти изменения, чтобы они были «самыми последними» (они считают, что они актуальны) Любые идеи о том, как я могу сделать это сделать «головой»? И как только это станет головой, это избавит меня от фильтрации веток, которую я сделал, чтобы избавиться от супер больших файлов? И если это произойдет, кто-нибудь есть какие-либо советы о том, как избавиться от этих супер больших файлов без этой головной боли снова.
Если нет другого пути, могу ли я просто извлечь две копии (одну в голове, одну в моем последнем хорошем коммите) и вручную скопировать и вставить хорошие файлы в голову, а затем зафиксировать? Похоже, это будет работать, но не будет очень чистым.