Отмена коммита (Revert)
Часть раздела Контроль версий путешествия по Terminal на Coddy — урок 43 из 58.
Если коммит уже был опубликован, его изменение рискованно, так как исходный ID будет утерян. Более безопасный вариант — git revert.
git revert HEADgit revert создает совершенно новый коммит, который отменяет изменения из целевого коммита, оставляя оригинал на месте. Ваша история будет выглядеть так: «мы сделали X, а затем отменили X».
Вы можете отменить любой коммит по ID, а не только последний:
git revert a1b2c3dИспользуйте --no-edit, чтобы пропустить редактор и принять сообщение о возврате по умолчанию:
git revert --no-edit HEADСообщение по умолчанию выглядит как Revert "Original subject", при этом исходное сообщение дублируется в теле.
Задание
ЛегкоПапка содержит app.txt. Инициализируйте репозиторий и создайте два коммита:
- Добавьте
app.txtс сообщениемAdd app. - Добавьте
brokenвapp.txtи сделайте коммит с сообщениемAdd broken line.
Откатите последний коммит (без открытия редактора), чтобы отменить битую строку. Выведите содержимое app.txt.
Шпаргалка
git revert создает новый коммит, который отменяет изменения целевого коммита, сохраняя историю:
git revert HEAD # отменить последний коммит
git revert a1b2c3d # отменить любой коммит по ID
git revert --no-edit HEAD # пропустить редактор, использовать сообщение по умолчаниюСообщение об отмене по умолчанию следует формату: Revert "Original subject".
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Контроль версий
2Начало работы
Инициализация репозиторияПапка .gitНастройка данных пользователяGit StatusИтоги — первый репозиторий5Игнорирование файлов
Зачем игнорировать файлыШаблоны .gitignoreПроверка правил игнорированияИтоги: чистый репозиторий8Слияние
Что такое слияниеСлияние Fast-ForwardТрёхстороннее слияниеКонфликты слиянияРазрешение конфликтаИтоги — Мастер слияния11Проект: Feature Branch
Обзор проектаИнициализация Main3Отслеживание изменений
Область подготовкиGit AddGit CommitИзменение отслеживаемого файлаGit LogИтоги: первые коммиты6Проект: Сайт рецептов
Обзор проектаИнициализация и игнорирование9Отмена изменений
Отмена непроиндексированных измененийИсключение файла из индексаИсправление последнего коммитаОтмена коммита (Revert)Сброс ветки (Reset)Итоги — Машина времени