4

Есть рабочий репозиторий с большой историей. Программист случайно выполнил в нем git init и отправил на сервер. В итоге была дозаписана куча мусора, права на файлы сменились + еще всякое. Коммит init нельзя просто так отменить(revert). Как все таки его отменить и вернуть все назад?

1 Answers1

4

Внимание! Описаны весьма опасные команды, потенциально деструктивные. Рекомендуется следовать им с осторожностью. Не забудьте сделать резервную копию на всякий случай.

  1. Прочитать записи в рефлоге. git reflog

  2. Сделать git reset --hard HEAD@{N} где N - нужный коммит

  3. Проверить, что текущая точка именно та, которая нужно.

  4. Если состояние устраивает -- то сделать 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