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 --list
2. Подготовка изменений: добавление или удаление файлов
Перед 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 --oneline
4. Откат последнего коммита
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
.
Ожидаемый результат: В истории появится коммит без изменений.
- Используйте