Learning Platform
Глоссарий Troubleshooting
Урок 01.03 · 12 мин
Начальный
GitМетодикаПесочница

Как учиться по этому курсу

Технические курсы, которые читают как книгу, не работают. Через две недели после прочтения вы помните общие идеи, но не помните, какой команде передать -p, чтобы добавить файл по кускам. Это нормально — мозг устроен так, что моторная память (пальцы на клавиатуре) и декларативная (текст в голове) хранятся в разных местах.

Этот урок — про то, как настроить процесс, чтобы знания реально оседали. Минимум 30 минут на чтение этого урока — потому что без правильной настройки следующие 50 часов курса будут просто чтением, а не обучением.


Главное правило: терминал параллельно с уроком

Откройте этот курс в одной половине экрана, терминал — в другой. Каждая команда в уроке должна быть выполнена руками. Не скопирована в clipboard — а напечатана пальцами.

Раскладка экрана на время учёбы
Левая половинаБраузер с курсом. На macOS — Cmd+← пинит окно к левой половине экрана. На Windows — Win+←. На Linux — зависит от WM, обычно Super+←
50% экранаУдобно для длинного текста с диаграммами. На маленьких ноутбуках — может быть 60/40
Правая половинаТерминал. На macOS лучше iTerm2, на Linux — GNOME Terminal или Alacritty, на Windows — Windows Terminal или WSL2 Ubuntu
50% экранаХватит для большинства команд. Если вывод длинный — раскрывайте на полный экран временно

Почему именно пальцами, а не copy-paste? Потому что когда вы печатаете git switch -c feature/login, ваш мозг запоминает: g-i-t, пробел, s-w-i-t-c-h, пробел, -c, пробел, имя. Это активная работа. Когда вы делаете Cmd+C / Cmd+V, мозг ничего не запоминает — он занят чем-то другим. Через неделю вы помните «была какая-то команда для создания ветки», но не помните, как.

TIP

Программисты с 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
└── ...
Структура git-sandbox
~/git-sandbox/Корень всех экспериментов. Тильда (~) — это ваш home: /Users/имя на macOS, /home/имя на Linux
одна папка на модуль
lesson-NN-X/Например, lesson-03-init/, lesson-04-branches/. Удобно потом возвращаться и пересматривать

Не бойтесь сломать что-то в этой директории. Если репозиторий сломался — удалите папку и создайте заново. Это песочница, на то она и песочница.

# Если что-то пошло не так:
cd ~/git-sandbox
rm -rf lesson-04-branches/
mkdir lesson-04-branches && cd lesson-04-branches
git init
# и начинаем заново
WARNING

Никогда не делайте rm -rf в директории, где могут быть важные файлы. Перед командой удаления — pwd и убедитесь, что вы в ~/git-sandbox/, а не в ~/Projects/work-stuff/.


Делайте упражнения и решайте квизы

В конце большинства уроков — блок «Попробуй сам» с конкретным заданием. Это не риторика. Делайте каждое задание руками, даже если оно кажется элементарным. Цель — мышечная память.

После каждого урока — квиз из 4-5 вопросов. Тоже не пропускайте. Квизы построены так, чтобы вытащить «вроде понял» и проверить на «реально понял». Если вы ответили неправильно — не идите дальше, перечитайте раздел. Курс — про понимание, не про прохождение чек-листа.

Цикл одного урока
1. Чтение15-20 минут спокойного чтения с одновременным выполнением команд в терминале
2. КомандыКаждый блок кода в уроке — выполняем руками. Не copy-paste, а печатаем
3. УпражнениеБлок «Попробуй сам» — задание шире, чем показанные команды. Заставляет применить знание
4. КвизПроверка понимания. Если ошибся — перечитай раздел

Учите команды через --help

В курсе мы покажем основные флаги для каждой команды. Но Git очень богатый — у одной только git log около 50 опций. Прокрутите man git-log или git log --help и посмотрите, что там есть. Не запоминайте — просто знайте, где искать.

git log --help          # открывает man-страницу
git log -h              # короткая справка прямо в терминале
git help log            # то же самое, что --help

Через полгода вы будете рефлекторно пробивать --help, когда увидите незнакомую команду, и это сэкономит вам тысячи походов в Google.

TIP

Хороший привычка: когда вам в курсе встретилась новая команда, потратьте 30 секунд на git <команда> --help, проскрольте первый экран, прочитайте описание и список основных флагов. Это закрепляет знание.


Не бойтесь read-only команд

Команды Git делятся на две категории:

Опасные и безопасные команды Git
БезопасныеТолько читают состояние, ничего не меняют. Можно запускать сколько угодно, никогда ничего не сломают
git statusПоказывает состояние working tree и index. Запускайте каждые 5 секунд
git logИстория коммитов
git diffРазница между состояниями
git branchБез аргументов — список веток
ИзменяющиеМеняют состояние репозитория. Здесь нужно быть внимательным
git commitСоздаёт новый commit. Обратимо через git reset, но всё равно осторожнее
git resetМеняет где указывает HEAD. С --hard может удалить изменения
git pushШлёт изменения на сервер. С --force может затереть чужие коммиты
git rebaseПереписывает историю. Опасно на публичных ветках

Read-only команды запускайте без страха — git status после каждой команды это здоровая привычка, а не паранойя. Изменяющие — сначала подумайте, что произойдёт, потом нажимайте Enter.

В песочнице, кстати, можете крутить любые команды свободно. Сломали репозиторий — rm -rf и заново. Это и есть смысл песочницы.


Чтение и пробивание чужого кода

Часть учёбы — открыть какой-нибудь публичный репозиторий на GitHub и посмотреть, как там устроено: какие коммиты, какие ветки, что в .gitignore, есть ли pre-commit hooks. Хорошие репозитории для подсматривания:

Клонируйте на машину, посмотрите git log, git branch -r, git tag. Не для того, чтобы что-то менять — просто посмотреть структуру. После курса вы будете видеть в git log не «список коммитов», а историю того, как продукт развивался.

.bashrc и история команд

Ритм: 1 модуль = 1 день = 2-3 часа

Найдите фиксированное время в дне для курса. Утро перед работой, вечер после, выходные — неважно, важно регулярность. Курс отлично заходит за 2-3 часа в день, по модулю. За 3-4 недели заканчивается полный курс.

Реалистичное расписание
БудниПонедельник-пятница. 1 модуль каждый вечер, по 2 часа
ВыходныеСуббота-воскресенье. Можно сделать 1 модуль глубоко или повторить пройденное за неделю
Всего22 модуль, реальный темп — 4 недели с учётом 2-3 дней отдыха

Не делайте марафоны. Если по 8 часов в день, на третий день усталость не даст ничего усвоить. Лучше час в день каждый день.


И последнее: не бойтесь возвращаться

Git — не та технология, которую понимаешь с первого раза. Концепты «detached HEAD», «interactive rebase», «cherry-pick» — нормально перечитать урок через две недели. Каждый раз понимание чуть глубже.

Курс никуда не денется. Через полгода после прохождения вы можете прийти и перечитать модуль 10 (про reflog) — и обнаружите, что теперь понимаете его в 10 раз глубже, потому что за полгода были реальные случаи, где reflog действительно спасал.

Готовы? В следующем модуле «С нуля» начинаем с самого начала — зачем вообще нужны версии, как сделать твой первый репозиторий и первый коммит. Совсем без опыта? Это ровно твоя отправная точка.


Проверка знанийKnowledge check
Почему важно держать терминал открытым параллельно с уроком, а не читать сначала и пробовать команды потом?
ОтветAnswer
Чтобы немедленно увидеть результат каждой команды и связать его с теорией. Если читать сначала, а потом пробовать — между объяснением и применением проходит время, и мозг успевает забыть контекст: что мы делали, зачем, какое было ожидаемое состояние. Когда терминал открыт параллельно, цепочка «прочитал команду -> выполнил -> увидел вывод -> сверил с ожиданием -> продолжил читать» замыкается за 30 секунд, и связь между концептом и практикой прочно фиксируется. Это работает не только для Git — это работает для любого технического курса.

Проверьте понимание

Результат: 0 из 0
Прикладной
Вопрос 1 из 5. Какой набор инструментов является минимально необходимым для прохождения практической части курса?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3