Git (система контроля версий)
Git
Что это такое
Git — распределённая система контроля версий: каждый клон хранит всю историю, а коммиты образуют граф, а не список, поэтому состояние проекта хранится в виде объектов, адресуемых по содержимому, а ветка — просто перемещаемое имя, указывающее в этот граф; понимание этой формы объясняет почти всё, что git делает и что иначе выглядит произвольным.
Почему это важно
Контроль версий — общая память команды: именно так вы выясняете, почему существует та или иная строка, как отменить ошибку, не растеряв хорошую работу рядом, и как несколько человек меняют один код, не перезаписывая друг друга. Почти вся боль разработчиков от git идёт из отношения к нему как к набору заклинаний: команды восстановления непонятны, поэтому их копируют из результата поиска и применяют с надеждой. Как только граф объектов и модель указателей ясны, команды становятся предсказуемыми, а страшные — обычными, и нужнее всего это знание там, где заученная команда неверна и разрушительна.
Что в этом треке
- Объектная модель и история (01-cs-fundamentals/12-git/01-the-object-model-and-history) — что такое коммит на самом деле и как читать историю как граф снимков.
- Ежедневный рабочий процесс (01-cs-fundamentals/12-git/02-the-daily-workflow) — коммиты, ветки, слияние, rebase и отмена, причём каждое действие привязано к решаемой задаче.
Предварительные требования
Нет.
Что читать дальше
- Стратегии ветвления в Git (01-cs-fundamentals/22-git-branching-strategies) — как команда договаривается о том, что означают ветки, когда механика уже ясна.
- GitHub (01-cs-fundamentals/23-github) — хостинг, pull request и issues, построенные поверх этой модели репозитория.
- Интерфейс командной строки (01-cs-fundamentals/24-command-line-interface) — как уверенно работать в терминале, где git удобнее всего.