Git: Как отменить фиксацию * и * вернуться к последней ветке

Ой ... Я по ошибке совершил довольно сложное изменение (включая переименование подкаталогов и файлов), не зная, что я делаю (или что Git будет делать).

Теперь я хочу отменить все такое, что:

  1. commit полностью отменяется (как если бы это никогда не было сделано, возможно удаление его также из истории)
  2. Восстановить текущий рабочий каталог (где .git ) до определенного ветка (на данный момент подойдет последняя).

Я нашел ссылки на git reset --soft и git reset --hard , но я уже доказал себе, что могу нанести реальный ущерб, преждевременно используя команду, не понимая ее полностью. :)

Я нашел страницу руководства git reset , но все еще не понимаю:

  1. Что такое HEAD ?
  2. В чем разница между HEAD и * master ?
  3. В моей ситуации (см. Выше) я могу необходимо использовать - мягкий , - жесткий или другое (еще 3 варианта)?
  4. Нужно ли мне запускать другую команду (после выполнения git reset ) на "завершить" разворот?

ОБНОВЛЕНИЕ: Прочитав ответ ниже:

  1. Правильно ли я понимаю, что все, что я нужно делать в моей ситуации это проблема одна команда git reset --hard ГОЛОВА ^ ?
  2. Как проверить, что сторнирование было выполняется правильно?

7
задан Community 23 May 2017 в 12:34
поделиться