Я просто сделал
git commit -m "blah"
то я добавил некоторые файлы, как мне откат и удалить то, что находится в моих текущих файлах, которые еще не добавлены/зафиксированы?
Я просто сделал
git commit -m "blah"
то я добавил некоторые файлы, как мне откат и удалить то, что находится в моих текущих файлах, которые еще не добавлены/зафиксированы?
Ниже ОРИГИНАЛЬНЫЙ ответ - то, что я думал, что ОП искал.
Хотя, согласно полезному комментарию от @ChrisNevill, оригинальный ответ может быть не тем, что вы ищете, и я обновил ответ, чтобы уточнить.
Nota Bene - Разрушительные команды впереди.
Смягчение последствий для Caveat Emptor - git reflog
может спасти вас, если вам это нужно.
→ ОБНОВЛЕННЫЙ ОТВЕТ
1) ОТМЕНИТЬ локальные изменения файла, но НЕ УДАЛЯТЬ свой последний коммит
git reset --hard
2) ОТМЕНИТЬ локальные изменения файла и удалить ваш последний коммит
git reset --hard HEAD^
3) СОХРАНЯЙТЕ локальные изменения файлов и УДАЛЯЙТЕ ТОЛЬКО свой последний коммит
git reset --soft HEAD^
→ ОРИГИНАЛЬНЫЙ ОТВЕТ
"Сбросить рабочее дерево до последнего коммита"
git reset --hard HEAD^
"Удалить неизвестные файлы из рабочего дерева"
git clean
Если вы хотите удалить недавно добавленное содержимое и файлы, которые уже поставлены (добавлены в индекс), вы используете:
git reset --hard
Если вы хотите удалить и свою последнюю фиксацию (это тот, у кого есть сообщение "blah" ), то лучше использовать:
git reset --hard HEAD^
Чтобы удалить неиспользуемые файлы (так что новые файлы еще не добавлены в индекс) и папки используют:
git clean --force -d
git reset --hard
заставит рабочий каталог вернуться к последнему фиксации и удалить новые/измененные файлы.
Вы можете вернуть фиксацию с помощью git revert HEAD^
для возврата к следующему фиксации. Вы также можете указать фиксацию для возврата с использованием id вместо HEAD ^
Легкий безопасный способ для локального файла UNDO с момента последнего фиксации, чтобы поместить их в новую ветку:
git branch changes
git checkout changes
git add .
git commit
Это оставляет изменения в новой ветке. Вернитесь к исходной ветке, чтобы вернуть ее к последней фиксации:
git checkout master
Новая ветка - это хорошее место, где можно использовать разные способы возврата изменений без риска испортить исходную ветвь.
Если вы хотите просто отключить последнюю фиксацию, используйте это:
git reset HEAD~
Работайте как прелесть для меня.