Исправление последнего коммита
Часть раздела Контроль версий путешествия по Terminal на Coddy — урок 42 из 58.
Если вы только что создали коммит и сразу поняли, что сообщение неверно, или забыли включить файл, вы можете перезаписать этот коммит с помощью:
git commit --amend -m "New message"Это заменяет самый последний коммит новым, который содержит ваше обновленное сообщение и включает в себя всё, что в данный момент находится в индексе (staged).
Чтобы добавить забытый файл в предыдущий коммит, сначала добавьте его в индекс, а затем выполните amend без изменения сообщения:
git add forgotten.txt
git commit --amend --no-editФлаг --no-edit сохраняет существующее сообщение.
Есть один нюанс: исправление (amend) создает совершенно новый коммит (с новым ID), хотя это и выглядит как редактирование. Исправляйте только те коммиты, которыми вы еще ни с кем не поделились, иначе вы запутаете коллег, у которых уже есть старая версия.
Задание
ЛегкоПапка содержит app.py. Инициализируйте репозиторий, добавьте файл в индекс и закоммитьте его с сообщением Inital commit (намеренная опечатка).
Исправьте коммит (amend), чтобы изменить сообщение на Initial commit, затем выведите тему последнего коммита с помощью git log -1 --pretty=%s.
Шпаргалка
Исправьте сообщение последнего коммита с помощью --amend:
git commit --amend -m "New message"Добавьте забытый файл в предыдущий коммит без изменения сообщения:
git add forgotten.txt
git commit --amend --no-editИсправление создает новый ID коммита — изменяйте только те коммиты, которые еще не были опубликованы.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Контроль версий
2Начало работы
Инициализация репозиторияПапка .gitНастройка данных пользователяGit StatusИтоги — первый репозиторий5Игнорирование файлов
Зачем игнорировать файлыШаблоны .gitignoreПроверка правил игнорированияИтоги: чистый репозиторий8Слияние
Что такое слияниеСлияние Fast-ForwardТрёхстороннее слияниеКонфликты слиянияРазрешение конфликтаИтоги — Мастер слияния11Проект: Feature Branch
Обзор проектаИнициализация Main3Отслеживание изменений
Область подготовкиGit AddGit CommitИзменение отслеживаемого файлаGit LogИтоги: первые коммиты6Проект: Сайт рецептов
Обзор проектаИнициализация и игнорирование9Отмена изменений
Отмена непроиндексированных измененийИсключение файла из индексаИсправление последнего коммитаОтмена коммита (Revert)Сброс ветки (Reset)Итоги — Машина времени