Как откатиться до определенного коммита? - PullRequest
1 голос
/ 18 июня 2019

У меня есть список коммитов. Нужно откатиться до some fit & upd (97f962f143b136d0d6dcbdfc02afc8253c767d7f). Необходимо сделать так, чтобы все файлы, которые были созданы в последующих коммитах, были удалены. enter image description here

git checkout 97f962f143b136d0d6dcbdfc02afc8253c767d7f

enter image description here

UPD

enter image description here

1 Ответ

4 голосов
/ 18 июня 2019

Ваша цель - удалить все коммиты после "некоторого соответствия и обновления" или просто получить рабочее дерево в этом состоянии? Я предполагаю, что вы пытались

git rest --hard 97f962f

Если это не помогло, я бы скачал весь пакет с github с нужным вам коммитом и заменил бы ваше рабочее дерево этими файлами. Возможно, это не рекомендуется или не безопасно, но я делал это несколько раз (подумайте о резервном копировании локального репо).

Перейти к репо на github.com. Нажмите «X-коммиты» (крайняя левая кнопка), перейдите к коммиту, который вы хотите, нажмите на имя коммита, нажмите «Обзор файлов», «Клонировать или загрузить», а затем загрузите zip. Вы получите архив с файлами, какими они были в этом коммите. Если ваш заголовок указывает, куда вы хотите, то замена файлов в вашем дереве на загруженные должна работать.

Возможно, что-то не так с вашим репо, если вы прибегаете к таким хакерским решениям, как это, но если оно работает, оно работает.

Вы можете попробовать git revert , если сброс не работает. Он не должен использоваться таким образом, но вы можете создать новую ветку и вернуть все коммиты между самой последней и той, которую вы хотите (используйте опцию --no-commit). Вы должны получить рабочий каталог, соответствующий желаемому коммиту. Не лучший способ сделать это, но если сброс не работает вообще, возможно, стоит попробовать.

...