Практика рассчитана на отдельную учебную среду и вымышленные данные.
Git
Рабочая папка, индекс и история показывают разные состояния изменения. Освойте маленькие проверяемые коммиты, прежде чем менять общую историю.
Git хранит историю состояний проекта. Рабочий каталог содержит текущие файлы; индекс описывает содержимое следующего коммита; коммит фиксирует подготовленное состояние вместе с родительской историей. Поэтому сохранение файла в редакторе и создание коммита — разные действия. Сначала прочитайте git status, затем разницу, и только потом выбирайте, что попадёт в историю.
Коммит полезен, когда объясняет один завершённый шаг: например, исправление расчёта суммы с проверенным примером. Название должно помогать будущему читателю понять результат. Случайная смесь оформления, новой функции и удаления файлов затрудняет разбор и проверку причины изменения.
В учебном репозитории создайте README с целью маленького проекта и файл с одним примером. Выполните git diff до добавления в индекс: это сравнение рабочего каталога с индексом. После git add README.md прочитайте git diff --cached: теперь виден подготовленный набор. Если второй файл не добавлен, он не станет частью коммита только потому, что лежит рядом.
После коммита прочитайте git log --oneline и git show --stat HEAD. Сверьте результат с задачей: есть ли нужный файл, нет ли лишнего, понятно ли сообщение? Чистый status сообщает об отсутствии локальной разницы, но не подтверждает правильность кода. Для этого нужен отдельный проверенный сценарий.
Ветка — подвижное имя линии истории. Создавая учебную ветку, вы можете закончить небольшой эксперимент и сравнить его с исходным состоянием. Перед объединением прочитайте итоговую разницу целиком. Если два человека меняли один участок, конфликт требует осмысленного решения: выбор любого варианта только ради зелёного статуса может удалить полезное поведение.
Удалённый репозиторий — отдельное место хранения истории. Локальный коммит не публикует изменение; отправка истории не разворачивает приложение. Эти этапы проверяют независимо: локально есть нужное состояние, удалённая ветка содержит его, опубликованный адрес показывает требуемую версию. Не отправляйте учебные эксперименты в рабочий репозиторий.
Перед каждым реальным действием смотрите текущее состояние, ветку и адрес назначения. Не добавляйте секреты в индекс, даже на короткое время: удаление строки следующим коммитом не удаляет её из предыдущей истории. Для первого занятия достаточно отдельного локального каталога без рабочих ключей и пользовательских данных.
- status/diff/log
- Ветки и слияние
- fetch и pull
Попробуйте
- Пройдите первые уровни Learn Git Branching: commit и branch.
- В новом учебном репозитории измените README, сравните git diff и git diff --cached.
- Создайте локальный коммит, проверьте git status и git log --oneline.
В истории одно осмысленное изменение; разница рабочего файла и staged-содержимого объяснена.
Изменяет ли fetch вашу рабочую ветку?
Обычно fetch обновляет удалённые ссылки и объекты; интеграция в рабочую ветку — отдельный шаг.
Продолжить на русском и английском
- Pro Git RU ↗
Главы 1–3: фиксация изменений и ветки. Онлайн-книга открыта; для локальных упражнений нужен Git.
- Pro Git EN ↗
Git Basics, затем Git Branching. Открытая онлайн-книга.
- Learn Git Branching RU/EN ↗
Пройдите вводные уровни commit и branch. Модель репозитория в браузере; нужен JavaScript.