git
Git: от нуля до сеньора
Начни, ни разу не запустив `git init`. Закончи, умея ветвиться, делать rebase, восстанавливать потерянную работу, переписывать историю — включая смену автора коммита — и вести рабочий процесс ветвления, на котором катит настоящая команда.
Начать трек → 01
Контроль версий и модель git
Git хранит проект как последовательность полных снимков, а не как кучу диффов. Пойми три места, где может жить файл — рабочее дерево, индекс, репозиторий — и ты понял бо́льшую часть git. 02
Фиксация изменений
Основной цикл: правка, индексация, коммит. Читай изменения через status и diff, не пускай мусор через .gitignore и пиши коммиты, которыми реально сможет пользоваться коллега — или ты в будущем. 03
Ветки и слияние
Ветка — это просто подвижный указатель на коммит: дёшево создать, дёшево выбросить. Создавай их, переключайся между ними, сливай обратно и разрешай возникающие конфликты. 04
Откат и переписывание истории
Ошибки обратимы. Сбрасывай правки через restore, двигай HEAD через reset, безопасно откатывай через revert, восстанавливай удалённые коммиты через reflog и меняй форму истории через интерактивный rebase — включая смену автора и даты коммита. 05
Удалённые репозитории и совместная работа
Удалённый репозиторий — это другая копия твоего репо, обычно на GitHub. Пушь в него свои коммиты, забирай чужие и пойми отслеживающие ветки, которые зеркалят его состояние, чтобы команда работала над одним проектом, не затирая друг друга. 06
Командные рабочие процессы
Рабочий процесс ветвления — это договор команды о том, как код движется от идеи к продакшену. Сравни три, на которых катят настоящие компании — git-flow, GitHub flow, trunk-based — и научись выбирать тот, что подходит размеру команды и темпу релизов. 07
Ежедневные инструменты
Команды, к которым сеньоры тянутся не задумываясь: прятать незавершённое в stash, переносить отдельный коммит через cherry-pick, помечать релиз тегом, держать две ветки сразу через worktree и гнуть git под себя алиасами и конфигом. 08
Под капотом
Git — это хранилище объектов с адресацией по содержимому и указателями поверх. Разбери четыре типа объектов, как ссылки и HEAD их индексируют, как merge и rebase на самом деле проигрывают коммиты и как хуки запускают код на событиях git. 09
Масштаб и спасение
Большие репозитории и плохие дни. Дёшево клонируй огромную историю, вендори код через submodule, вычищай секреты из всей истории через filter-repo, подписывай коммиты для доверия и возвращай репозиторий с того света. 10