Есть рабочий репозиторий с большой историей. Программист случайно выполнил в нем git init и отправил на сервер. В итоге была дозаписана куча мусора, права на файлы сменились + еще всякое. Коммит init нельзя просто так отменить(revert).
Как все таки его отменить и вернуть все назад?
Asked
Active
Viewed 144 times
4
Виталий Емельянцев
- 5,788
user220501
- 49
1 Answers
4
Внимание! Описаны весьма опасные команды, потенциально деструктивные. Рекомендуется следовать им с осторожностью. Не забудьте сделать резервную копию на всякий случай.
Прочитать записи в рефлоге.
git reflogСделать
git reset --hard HEAD@{N}где N - нужный коммитПроверить, что текущая точка именно та, которая нужно.
Если состояние устраивает -- то сделать
git push -f(раз уж вы успели на сервер отправить)
A K
- 28,718
-
4Для страховки можно оставить на текущем конечном коммите бэкап-ветку. И сделать это лучше после того, как сделан
pull, и предупредив всех коллег, чтобы ничего в репозиторий не закидывали. – Sep 19 '16 at 11:34 -
git initв уже инициированном репозитории вообще ничего не должен делать. Объясните, пожалуйста, что там у автора произошло? – Nick Volynkin Sep 19 '16 at 13:15
git initв уже существующем репозитории ничего не меняет.. Может, какая-то другая команда была использована? – Nick Volynkin Sep 19 '16 at 13:20