git commit --- Сохранение снимков
Команда git commit создаёт новый снимок ваших проиндексированных изменений. Каждый коммит --- это постоянная запись в истории вашего проекта.
Анатомия коммита
Каждый коммит содержит:
- Уникальный SHA --- Хеш-идентификатор (например,
a1b2c3d) - Ваши изменения --- Проиндексированные файлы на момент коммита
- Сообщение --- Описание, понятное человеку
- Автор и временная метка --- Кто сделал коммит и когда
- Родительский коммит(ы) --- Что было до этого (для истории)
Написание хороших сообщений коммитов
Хорошее сообщение коммита объясняет почему, а не только что:
- ✅
"Fix login timeout by increasing session duration" - ✅
"Add user profile page with avatar upload" - ❌
"Fix bug" - ❌
"Update files"
Попробуйте!
Репозиторий уже инициализирован. Сделайте два отдельных коммита:
- Создайте файл:
echo "first" > file1.txt - Проиндексируйте и зафиксируйте:
git add file1.txt, затемgit commit -m "Add first file" - Создайте ещё один файл:
echo "second" > file2.txt - Проиндексируйте и зафиксируйте:
git add file2.txt, затемgit commit -m "Add second file" - Проверьте лог:
git log --oneline
Наблюдайте, как граф справа обновляется с каждым коммитом!
Сокращение с флагом -a
Как только файлы отслеживаются (зафиксированы хотя бы один раз), вы можете пропустить git add, используя:
git commit -am "message"
Это индексирует все изменённые отслеживаемые файлы и фиксирует их за один шаг. Но это не добавит новые неотслеживаемые файлы.