Appearance
Git commit - Фиксация
Как переводится commit?
Слово commit в переводе с английского означает зафиксировать, закрепить. В контексте Git оно обозначает сохранение изменений в истории репозитория.
Фиксация git commit — это один из ключевых механизмов Git. Он фиксирует изменения, внесенные в файлы, и добавляет их в локальный репозиторий.
Commit — основа работы с Git. Они позволяют фиксировать изменения, отслеживать историю проекта и управлять разными версиями кода. Умение правильно работать с git commit помогает организовать эффективный рабочий процесс.
Основные функции commit
- Сохраняет текущее состояние файлов.
- Позволяет отслеживать историю проекта.
- Дает возможность откатиться к предыдущим версиям.
- Служит точкой восстановления в случае ошибок.
Каждый commit имеет уникальный идентификатор (хеш) и содержит информацию:
- Автор фиксации
- Дата и время фиксации
- Список измененных файлов
- Сообщение фиксации
Описание необходимых шагов для выполнения коммита
1. Указание имени автора и почты
Перед созданием коммита Git требует указать имя и email автора. Эти данные записываются в метаданных коммитов.
Настроить для локального репозитория их можно командой:
bash
git config user.name "Ваше Имя"
git config user.email "ваш.email@example.com"Проверить настройки можно так:
bash
git config --list2. Подготовка изменений: добавление или удаление файлов
Перед commit нужно выбрать, какие изменения будут зафиксированы.
Добавление файлов в индекс (staging area)
- Добавить конкретный файл:bash
git add <имя_файла/дирректории> - Добавить все измененные файлы:bash
git add .
Удаление файлов
- Удалить файл из репозитория и рабочей директории:bash
git rm <имя_файла> - Удалить файл только из репозитория (но оставить в рабочей директории):bash
git rm --cached <имя_файла>
3. Выполнение фиксации (commit)
После подготовки файлов создаем коммит:
bash
git commit -m "Краткое описание изменений"-m - сокращение от message
Если не указать -m "сообщение", Git откроет текстовый редактор для ввода сообщения.
4. Требования к сообщению commit
Сообщение коммита должно быть понятным и информативным. Рекомендации:
- Первая строка — краткое описание (50-72 символа).
- Дальше можно добавить подробности, если нужно.
- Используйте повелительное наклонение: "Добавить", "Исправить", "Удалить".
- Пример хорошего сообщения:
Исправить ошибку валидации форм Добавлена проверка email, исправлена работа с пустыми полями
5. История фиксаций (commit)
Чтобы посмотреть историю коммитов, используйте:
bash
git logКоманда покажет список коммитов с их хешами, авторами и датами.
Дополнительные опции:
- Короткая история:bash
git log --oneline - История с графиком веток:bash
git log --graph --oneline --all
6. Изменение последней фиксации (commit)
Если нужно исправить последний коммит (например, добавить забытый файл или исправить сообщение), используйте:
bash
git commit --amendЕсли нужно только изменить сообщение:
bash
git commit --amend -m "Новое сообщение"7. Отмена фиксаций (commit)
Если нужно отменить коммит, есть несколько вариантов:
- Откатить коммит, но сохранить изменения в файлах:bash
git reset --soft HEAD~1 - Откатить коммит и удалить изменения:bash
git reset --hard HEAD~1 - Откатить 3 последних коммита и удалить изменения:bash
git reset --hard HEAD~3 - Создать новый коммит, отменяющий изменения предыдущего:bash
git revert <хеш_коммита>
Дополнительные опции git commit
git commit -a -m "Сообщение"— автоматически добавляет и фиксирует все измененные файлы.git commit --no-edit— изменяет последний коммит без редактирования сообщения.git commit --allow-empty -m "Пустой коммит"— создает коммит без изменений (полезно для отметок в истории).git commit --date: Позволяет указать дату и время для фиксации.git commit -v: Показывает подробную информацию о фиксации, включая изменения в файлах.
Чтобы выйти из режима редактирования сообщения коммита в командной строке Windows, выполните следующие шаги:
- Нажмите
Esc, чтобы выйти из режима вставки и перейти в командный режим. - Введите
:wqи нажмитеEnter, чтобы сохранить изменения и выйти из редактора. - Если вы хотите выйти без сохранения изменений, введите
:q!и нажмитеEnter.
Эти команды работают в редакторе Vim, который часто используется по умолчанию для редактирования сообщений коммитов в Git. Если у вас установлен другой редактор, команды могут отличаться.
Пример работы с фиксацией (commit)
1. Создание нового репозитория и добавление файла
bash
git init
echo "Hello, Git!" > file.txt
git add file.txt
git commit -m "Добавлен файл file.txt"2. Изменение файла и создание нового коммита
bash
echo "Еще одна строка" >> file.txt
git add file.txt
git commit -m "Обновлен файл file.txt"3. Просмотр истории коммитов
bash
git log --oneline4. Откат последнего коммита
bash
git reset --soft HEAD~1Упражнения
Первый коммит
Задача: Создайте новый репозиторий, добавьте файл и зафиксируйте изменения.
Ожидаемый результат:git logдолжен показать один коммит.Изменение коммита
Задача:- Создайте коммит с файлом.
- Добавьте изменения в этот же файл.
- Используйте
git commit --amend, чтобы обновить коммит.
Ожидаемый результат:git logдолжен показывать один исправленный коммит (без нового коммита).
Отмена последнего коммита
Задача:- Создайте два коммита.
- Используйте
git reset --soft HEAD~1, чтобы отменить последний коммит. - Проверьте состояние с
git status.
Ожидаемый результат: Последний коммит исчез, но изменения остались в рабочей области.
Работа с
git revert
Задача:- Создайте три коммита.
- Используйте
git revertдля отмены второго коммита. - Проверьте историю с
git log.
Ожидаемый результат: В истории появится новый коммит, отменяющий второй.
Создание пустого коммита
Задача:- Используйте
git commit --allow-empty -m "Метка в истории". - Проверьте
git log.
Ожидаемый результат: В истории появится коммит без изменений.
- Используйте