Отмена локальных изменений
Изучите разные способы отмены или сброса локальных изменений, включая удаление файлов из области подготовки и изменение предыдущих фиксаций.
«Отмена локальных изменений» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Ой! Отмена локальных изменений
Вы когда-нибудь допускали ошибку или меняли решение во время работы над проектом? Не переживайте — такое случается со всеми!
Git предоставляет мощные средства для отмены изменений в локальном репозитории. В этом уроке Вы узнаете, как безопасно отменять нежелательные изменения.
Всегда начинайте с `git status`
Прежде чем что-либо отменять, крайне важно знать текущее состояние репозитория. Здесь Вашим главным помощником будет команда git status.
Она показывает, какие файлы изменены, подготовлены (готовы к фиксации) или не отслеживаются.
git statusУбрать файл из подготовленных
Иногда Вы добавляете файл в область подготовленных изменений с помощью git add, но затем понимаете, что не хотите включать его в следующую фиксацию.
Вы можете убрать его из подготовленных, вернув в изменённое (неподготовленное) состояние, с помощью команды git restore --staged <file>.
git add my_feature.js
git status
git restore --staged my_feature.js
git statusОтменить изменения рабочего каталога (файл)
Что делать, если Вы изменили файл в рабочем каталоге, но не добавили его в область подготовленных изменений и теперь хотите полностью отменить эти изменения?
Команда git restore <file> вернёт этот файл в состояние последней фиксации, фактически удалив локальные изменения.
echo "new content" > index.html
git status
git restore index.html
git statusОтменить все незафиксированные изменения
Будьте осторожны с этой командой! Если Вы хотите отменить все изменения в рабочем каталоге, которые ещё не были зафиксированы, используйте git restore .
Эта команда вернёт все изменённые файлы в текущем каталоге и его подкаталогах в состояние последней фиксации. Неподготовленные файлы будут потеряны!
echo "change 1" > file1.txt
echo "change 2" > file2.txt
git status
git restore .
git statusИзменить сообщение последней фиксации
Вы допустили опечатку в сообщении последней фиксации? Забыли упомянуть важную деталь?
Вы можете изменить сообщение самой последней фиксации с помощью команды git commit --amend. Эта команда открывает используемый по умолчанию текстовый редактор для изменения сообщения.
git commit --amend -m "Updated commit message with fix"Изменить фиксацию, добавив пропущенные файлы
Забыли включить файл в последнюю фиксацию? Не проблема!
Добавьте забытый файл или файлы в область подготовленных изменений с помощью git add, а затем используйте git commit --amend --no-edit. Это добавит подготовленные файлы в предыдущую фиксацию, не изменяя её сообщение.
git add new_script.py
git commit --amend --no-editПочему предпочтительна команда `git restore`
В старых руководствах Вам могут встретиться рекомендации использовать git reset HEAD <file> для удаления файлов из области подготовленных изменений или git checkout -- <file> для отмены изменений.
Эти команды работают, но git restore — более новая и понятная команда, созданная для того, чтобы сделать такие операции яснее и безопаснее. Она предназначена именно для отмены изменений.
Объединим всё: сценарий
Представьте, что Вы изменили config.json, добавили его в область подготовленных изменений, а затем поняли, что допустили ошибку и хотите полностью отменить изменение.
- Сначала уберите файл из подготовленных.
- Затем верните его к версии последней фиксации.
echo "bad config" > config.json
git add config.json
git status
git restore --staged config.json
git restore config.json
git statusБыстрая проверка: отмена изменений
Вы изменили data.csv в рабочем каталоге, но не добавили эти изменения в область подготовленных. Вы решили полностью отменить изменения и вернуть data.csv в состояние последней фиксации.
Повторение: уверенно отменяем изменения
Отличная работа! Вы научились безопасно отменять локальные изменения в Git:
- Используйте
git status, чтобы просматривать текущие изменения. - Используйте
git restore --staged <file>, чтобы убрать файлы из области подготовленных изменений. - Используйте
git restore <file>, чтобы отменить изменения рабочего каталога для конкретного файла. - Используйте
git restore ., чтобы отменить все неподготовленные изменения рабочего каталога (будьте осторожны!). - Используйте
git commit --amend, чтобы исправить сообщение последней фиксации или добавить пропущенные файлы.
Эти команды необходимы для поддержания чистой и точной истории проекта!
Часто задаваемые вопросы
Урок «Отмена локальных изменений» бесплатный?
Да — полный текст урока «Отмена локальных изменений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Отмена локальных изменений»?
Изучите разные способы отмены или сброса локальных изменений, включая удаление файлов из области подготовки и изменение предыдущих фиксаций. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Отмена локальных изменений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Индексация, фиксация и история
- Отмена локальных изменений
- Основы ветвления и слияния
- Откладывание незавершённой работы