Сбросить все изменения после последнего коммита в git

Как отменить каждые изменений, внесенных в мой каталог после последней фиксации, включая удаление добавленных файлов, сброс измененных файлов и добавление обратно удаленных файлов?

вопрос задан 7.01.2011
Dogbert
146903 репутация

2 ответов


  • 445 рейтинг

    Сначала сбросьте изменения

    git reset HEAD --hard
    

    тогда вычистите все неотслеживаемым. Если вы хотите сохранить файлы, которые не отслеживаются из-за .gitignore, будьте осторожны с этой командой.

    git clean -fd
    
    ответ дан Benjamin Bannier, с репутацией 32466, 7.01.2011
  • 41 рейтинг

    Как можно отменить каждое изменение , внесенное в мой каталог после последней фиксации, включая удаление добавленных файлов, сброс измененных файлов и добавление обратно удаленных файлов?

    1. Можно отменить изменения в отслеживаемых файлах с:

      git reset HEAD --hard
      
    2. Можно удалить неотслеживаемых файлов с помощью:

      git clean -f
      
    3. Вы можете удалить неотслеживаемых файлов и каталогов с помощью:

      git clean -fd
      

      но вы не можете отменить переход на неотслеживаемые файлы .

    4. Можно удалить проигнорированных и неотслеживаемых файлов и каталогов

      git clean -fdx
      

      , но нельзя отменить, чтобы изменить игнорируемые файлы .

    Вы можете установить clean.requireForce на false:

    git config --global --add clean.requireForce false
    

    , чтобы избежать использования -f (--force) при использовании git clean.

    ответ дан Ortomala Lokni, с репутацией 19795, 30.10.2016