Как учиться по этому курсу
Технические курсы, которые читают как книгу, не работают. Через две недели после прочтения вы помните общие идеи, но не помните, какой команде передать -p, чтобы добавить файл по кускам. Это нормально — мозг устроен так, что моторная память (пальцы на клавиатуре) и декларативная (текст в голове) хранятся в разных местах.
Этот урок — про то, как настроить процесс, чтобы знания реально оседали. Минимум 30 минут на чтение этого урока — потому что без правильной настройки следующие 50 часов курса будут просто чтением, а не обучением.
Главное правило: терминал параллельно с уроком
Откройте этот курс в одной половине экрана, терминал — в другой. Каждая команда в уроке должна быть выполнена руками. Не скопирована в clipboard — а напечатана пальцами.
Почему именно пальцами, а не copy-paste? Потому что когда вы печатаете git switch -c feature/login, ваш мозг запоминает: g-i-t, пробел, s-w-i-t-c-h, пробел, -c, пробел, имя. Это активная работа. Когда вы делаете Cmd+C / Cmd+V, мозг ничего не запоминает — он занят чем-то другим. Через неделю вы помните «была какая-то команда для создания ветки», но не помните, как.
Программисты с 5-10 годами опыта набирают git status десятки раз в день автоматически — мышцы пальцев знают эту команду без участия мозга. Так получается только через тысячи повторений. Начните формировать эту привычку с первого модуля.
Создайте git-sandbox
Через пару уроков мы будем экспериментировать с командами Git. Чтобы не засорять реальные проекты, заведите отдельную директорию для упражнений:
mkdir -p ~/git-sandbox
cd ~/git-sandbox
Все упражнения курса делаются именно тут. Каждая практика — отдельная поддиректория:
~/git-sandbox/
├── lesson-03-init/ # упражнение из модуля 4
├── lesson-04-branches/ # из модуля 5
├── lesson-06-conflicts/ # из модуля 7
└── ...
Не бойтесь сломать что-то в этой директории. Если репозиторий сломался — удалите папку и создайте заново. Это песочница, на то она и песочница.
# Если что-то пошло не так:
cd ~/git-sandbox
rm -rf lesson-04-branches/
mkdir lesson-04-branches && cd lesson-04-branches
git init
# и начинаем заново
Никогда не делайте rm -rf в директории, где могут быть важные файлы. Перед командой удаления — pwd и убедитесь, что вы в ~/git-sandbox/, а не в ~/Projects/work-stuff/.
Делайте упражнения и решайте квизы
В конце большинства уроков — блок «Попробуй сам» с конкретным заданием. Это не риторика. Делайте каждое задание руками, даже если оно кажется элементарным. Цель — мышечная память.
После каждого урока — квиз из 4-5 вопросов. Тоже не пропускайте. Квизы построены так, чтобы вытащить «вроде понял» и проверить на «реально понял». Если вы ответили неправильно — не идите дальше, перечитайте раздел. Курс — про понимание, не про прохождение чек-листа.
Учите команды через --help
В курсе мы покажем основные флаги для каждой команды. Но Git очень богатый — у одной только git log около 50 опций. Прокрутите man git-log или git log --help и посмотрите, что там есть. Не запоминайте — просто знайте, где искать.
git log --help # открывает man-страницу
git log -h # короткая справка прямо в терминале
git help log # то же самое, что --help
Через полгода вы будете рефлекторно пробивать --help, когда увидите незнакомую команду, и это сэкономит вам тысячи походов в Google.
Хороший привычка: когда вам в курсе встретилась новая команда, потратьте 30 секунд на git <команда> --help, проскрольте первый экран, прочитайте описание и список основных флагов. Это закрепляет знание.
Не бойтесь read-only команд
Команды Git делятся на две категории:
Read-only команды запускайте без страха — git status после каждой команды это здоровая привычка, а не паранойя. Изменяющие — сначала подумайте, что произойдёт, потом нажимайте Enter.
В песочнице, кстати, можете крутить любые команды свободно. Сломали репозиторий — rm -rf и заново. Это и есть смысл песочницы.
Чтение и пробивание чужого кода
Часть учёбы — открыть какой-нибудь публичный репозиторий на GitHub и посмотреть, как там устроено: какие коммиты, какие ветки, что в .gitignore, есть ли pre-commit hooks. Хорошие репозитории для подсматривания:
- github.com/apache/airflow — Apache Airflow. Большой проект, активный.
- github.com/dbt-labs/dbt-core — dbt. Образцовая работа с PR.
- github.com/pola-rs/polars — Polars. Развивающийся проект, видна культура коммитов.
Клонируйте на машину, посмотрите git log, git branch -r, git tag. Не для того, чтобы что-то менять — просто посмотреть структуру. После курса вы будете видеть в git log не «список коммитов», а историю того, как продукт развивался.
Ритм: 1 модуль = 1 день = 2-3 часа
Найдите фиксированное время в дне для курса. Утро перед работой, вечер после, выходные — неважно, важно регулярность. Курс отлично заходит за 2-3 часа в день, по модулю. За 3-4 недели заканчивается полный курс.
Не делайте марафоны. Если по 8 часов в день, на третий день усталость не даст ничего усвоить. Лучше час в день каждый день.
И последнее: не бойтесь возвращаться
Git — не та технология, которую понимаешь с первого раза. Концепты «detached HEAD», «interactive rebase», «cherry-pick» — нормально перечитать урок через две недели. Каждый раз понимание чуть глубже.
Курс никуда не денется. Через полгода после прохождения вы можете прийти и перечитать модуль 10 (про reflog) — и обнаружите, что теперь понимаете его в 10 раз глубже, потому что за полгода были реальные случаи, где reflog действительно спасал.
Готовы? В следующем модуле «С нуля» начинаем с самого начала — зачем вообще нужны версии, как сделать твой первый репозиторий и первый коммит. Совсем без опыта? Это ровно твоя отправная точка.