GIT. Как отменить локальные изменения не вошедние в последний коммит? (git status) Чтобы можно было сделать нормальный git pull новой ветки и отменить изменения файлов без коммита?
1. Отменить изменения в конкретном файле:
git checkout -- <имя_файла>Code language: HTML, XML (xml)
Эта команда вернёт файл к состоянию, в котором он был в последнем коммите.
2. Отменить все изменения в рабочей директории:
git checkout -- .
(Вернёт все изменённые файлы к состоянию последнего коммита.)
3. Отменить все изменения, включая новые (неотслеживаемые) файлы:
git clean -df # удаляет неотслеживаемые файлы и директории
git checkout -- . # сбрасывает изменения в отслеживаемых файлахCode language: PHP (php)
⚠️ git clean -df безвозвратно удалит все неотслеживаемые файлы, так что убедитесь, что они вам не нужны!
4. Сбросить все изменения, включая проиндексированные (добавленные в git add, но не закоммиченные):
git reset --hard
Эта команда:
- Сбросит изменения в рабочей директории.
- Удалит все изменения из индекса (
git add). - Не затронет неотслеживаемые файлы (новые файлы, которые ещё не добавлены в Git).
Если нужно также удалить неотслеживаемые файлы, добавьте:
git clean -df
После этого можно безопасно сделать git pull:
git pull origin <имя_ветки>Code language: HTML, XML (xml)
Важно:
git reset --hardиgit clean -dfбезвозвратно удаляют изменения, поэтому убедитесь, что они вам не нужны.- Если есть ценные изменения, можно создать временный коммит или использовать
git stash:
git stash # сохраняет изменения во временное хранилище
git pull origin <ветка>
git stash pop # возвращает изменения (может вызвать конфликты)Code language: PHP (php)
