Ответ
Коммит (commit) в Git — это основная единица истории проекта; по сути, это «снимок» (snapshot) состояния всех отслеживаемых файлов в репозитории в определенный момент времени.
Из чего состоит коммит:
- Уникальный хеш (SHA-1): Идентификатор коммита, например
a1e8fb5. - Указатель на родительские коммиты: Обычно один, но может быть несколько (в случае слияния веток).
- Метаданные: Имя автора, email, дата и время создания.
- Сообщение коммита: Описание сделанных изменений.
Пример жизненного цикла коммита:
# 1. Добавляем измененные файлы в staging area (индекс)
git add .
# 2. Фиксируем изменения, создавая новый коммит
git commit -m "feat: Add user authentication endpoint"
Ключевые принципы работы с коммитами:
- Атомарность: Один коммит должен содержать одно логическое изменение. Это упрощает отладку, ревью кода и откат изменений.
- Неизменяемость: Существующие коммиты нельзя изменить. Можно лишь создать новые поверх старых (например, с помощью
git rebaseилиgit commit --amend), но это создаст новую историю. - Информативные сообщения: Качественное сообщение коммита — залог понятной и поддерживаемой истории проекта.
Для просмотра истории коммитов используется команда git log.
Ответ 18+ 🔞
А, слушай, смотри, вот эта вся ваша гитовская магия с коммитами. Это ж, блядь, как фотка, понимаешь? Только не селфи в сортире, а снимок всего твоего кода, всего проекта, в один конкретный момент. Зафиксировал состояние — и всё, пиздец, точка во времени. Как в архиве, только для кода.
Ну, из чего эта хуйня собрана, этот коммит:
- Хеш, ёпта: Уникальный номер, типа
a1e8fb5. Это как ДНК коммита, второй такой в природе не найдёшь, даже если захотеть. - Родители: Обычно один предок, но если ты ветки сливал, то их может быть и два. Как у человека, только без скандалов.
- Метаданные: Кто, когда и с какого мыла это натворил. Не спрячешься, падла.
- Сообщение: А вот это самое важное! Это как записка на холодильник будущему себе, который через полгода будет охуевать и думать: «Что за хуйню я тут написал?».
Как это на практике выглядит, этот цирк:
# 1. Готовим всё, что натворили, к отправке. Собираем в кучку.
git add .
# 2. И — бабах! Фиксируем на века с криком души.
git commit -m "feat: Add user authentication endpoint"
А теперь, блядь, главные правила, чтобы не обосраться:
- Одно дело — один коммит. Не надо впихивать в один коммит и новую кнопку, и починку бага с анимацией, и обеденный перерыв. Это атомарность, ёпта! Так и откатить проще, и понять, что происходит.
- Высечено в камне. Старый коммит не перепишешь. Можно только поверх накатить новый, но это уже будет другая история, и всем придётся подстраиваться. Как в плохом сериале — реткон, блядь.
- Пиши нормально! Сообщение «чё-то сделал» — это пиздец, доверия ебать ноль. Напиши внятно, что и зачем, чтобы через месяц самому не было стыдно.
Ну а чтобы всю эту красоту посмотреть, историю своих подвигов, есть git log. Там всё как на ладони, кто, когда и какую дичь в репу закоммитил.