Сбросить все изменения после последнего коммита в git - PullRequest
286 голосов
/ 08 января 2011

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

Ответы [ 2 ]

500 голосов
/ 08 января 2011

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

git reset HEAD --hard

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

git clean -fd
57 голосов
/ 30 октября 2016

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

  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.

...