git Отмена, откат изменений -- как вернуться к предыдущему состоянию (разные ситуации, примеры)

  1. Отмена не добавленых и не зафиксированных изменений (без add и без commit):

  2. Отмена add -- отмена добавленых, но не зафиксированных изменений (т.е. с add, но без коммит). В том числе новых файлов.
  3. Отмена/откат commit-ов (т.е. зафиксированных изменений -- можно разными способами):
    1. git revert -- откат коммитов, с помощью создания противоположных им (действие будет отражаться в истории) -- можно после push (меньше проблем чем с reset)
    2. git reset -- удаление коммитов (в том числе мягкое -- чтобы изменения коммита стали "незафиксированными")
  4. Отмена изменений после неудачного слияния (merge).
  5. Откат локальной ветки к ранее опубликованному состоянию из внешнего репозиторий
  6. Временный откат к конкретному коммиту
  7. Откат файл к состоянию из другой ветки