- Андрей Куманяев/
- Git: руководства и команды/
- Learn Git Branching: интерактивный тренажёр для изучения Git/
Learn Git Branching: интерактивный тренажёр для изучения Git
Learn Git Branching — это бесплатный интерактивный тренажёр для изучения Git прямо в браузере. Вместо чтения документации, вы выполняете задания на визуальном графе коммитов и веток. Адрес: learngitbranching.js.org.
Что такое Learn Git Branching #
Тренажёр показывает граф репозитория в реальном времени: коммиты, ветки, HEAD. Вы вводите команды в терминале — и видите как меняется граф. Это интуитивно понятнее, чем читать об абстрактных операциях.
Что предоставляет тренажёр:
- Визуальный граф коммитов и веток
- Встроенный «терминал» для ввода команд
- 30+ уровней от простых до сложных
- Мгновенная обратная связь
- Доступно на русском языке
- Работает без регистрации
Как начать #
1. Открыть learngitbranching.js.org
2. Нажать "Start!" или перейти в "Levels"
3. Выбрать уровень (рекомендуется начать с начала)
4. Читать задание
5. Вводить команды в терминал
6. Граф обновляется после каждой команды
Также доступна «Песочница» (Sandbox) — свободный режим без заданий для экспериментов.
Структура уровней #
Тренажёр разделён на два раздела:
Основные (Main):
Уровень 1: Введение в Git коммиты
- git commit
- git branch, git checkout
Уровень 2: Ветвление в Git
- Создание веток
- git merge
- git rebase
Уровень 3: Перемещение по Git
- HEAD
- Относительные ссылки (~, ^)
- git branch -f
Уровень 4: Обращение с изменениями
- git reset, git revert
- git cherry-pick
- Interactive rebase (-i)
Уровень 5: Работа с удалёнными репозиториями
- git clone, git fetch
- git pull, git push
- origin branches
Удалённые (Remote):
Продвинутые темы:
- Push & Pull — удалённые репозитории в Git
- Расширенный материал по origin и работе с remote
Основные команды в тренажёре #
Создание коммитов:
# Создать коммит (тренажёр симулирует изменение)
git commit
# Создать коммит с сообщением
git commit -m "feat: add feature"
Работа с ветками:
# Создать ветку
git branch feature
# Переключиться на ветку
git checkout feature
# или
git switch feature
# Создать и переключиться
git checkout -b feature
git switch -c feature
# Принудительно переместить ветку
git branch -f main HEAD~3
Слияние веток:
# Merge
git merge feature
# Rebase текущей ветки на main
git rebase main
# Интерактивный rebase
git rebase -i HEAD~3
Навигация:
# Относительные ссылки
git checkout HEAD~1 # один коммит назад
git checkout HEAD~3 # три коммита назад
git checkout HEAD^ # родительский коммит
git checkout HEAD^2 # второй родитель (при merge)
# Переместить ветку к конкретному коммиту
git branch -f main C3 # переместить main на коммит C3
Cherry-pick и rebase:
# Скопировать конкретные коммиты
git cherry-pick C2 C4
# Интерактивный rebase (изменить порядок, удалить коммиты)
git rebase -i HEAD~4
Советы по прохождению #
1. Читайте задание внимательно — иногда ответ нестандартный
2. Экспериментируйте в Sandbox перед уровнями
3. Используйте "?help" для подсказок по командам
4. "show solution" показывает решение, если застряли
5. Не пропускайте объяснения — они важны для понимания
6. Проходите уровни по порядку, не перескакивайте
Команды специфичные для тренажёра #
В тренажёре доступны некоторые дополнительные команды:
# Показать цели уровня
show goal
# Показать подсказки
?help
# Показать решение
show solution
# Сбросить уровень
reset
# Открыть редактор для интерактивного rebase
# (тренажёр симулирует vim-like интерфейс)
Связь с реальным Git #
Команды в тренажёре совпадают с реальным Git. Разница лишь в том, что:
Тренажёр Реальный Git
──────────────────────────────────────────────
git commit git commit -m "message"
(симулирует изменения файлов) (нужны реальные изменения)
Граф отображается в реальном времени
Нет реальных файлов — только объекты графа
После прохождения тренажёра все команды будут работать в реальном Git.
Полное руководство по уровням #
Main последовательность (введение в основы):
Уровень 1-3: Основы коммитов и веток
- commit: создание сохранения
- branch: создание параллельной линии разработки
- checkout: переключение между ветками
- Цель: понять что такое коммиты и ветки
Уровень 4-6: Слияние веток
- merge: объединение веток (создаёт merge коммит)
- Понимание fast-forward vs recursive merge
- Цель: когда и как мержить ветки
Уровень 7-9: Rebase
- rebase: переписывание истории (перемещение коммитов)
- rebase vs merge (когда использовать что)
- Цель: понять когда rebase лучше merge
Уровень 10-12: Перемещение по репозиторию
- HEAD: указатель на текущий коммит
- Relative refs: ^, ~ (навигация по коммитам)
- branch -f: принудительное перемещение ветки
- Цель: знать как навигироваться в графе
Уровень 13-15: Изменение истории
- reset: откат коммитов (для локальной работы)
- revert: создание обратного коммита (для shared веток)
- cherry-pick: копирование конкретных коммитов
- Цель: понять риски изменения истории
Remote последовательность (работа с удалёнными репозиториями):
Уровень 1-3: Clone и fetch
- clone: копирование репозитория
- fetch: загрузка новых коммитов (без merge)
- origin/main: отслеживание ветки на сервере
- Цель: понять удалённые ветки
Уровень 4-6: Push и Pull
- push: отправка коммитов на сервер
- pull: fetch + merge одновременно
- Tracking branches: связь между local и remote
- Цель: синхронизация с сервером
Уровень 7-9: Продвинутые техники
- git checkout -b main origin/main
- git branch -u origin/main
- git merge origin/main
- Цель: детали работы с remote
Лучшая стратегия прохождения #
Рекомендуемый порядок:
1. Начните с Main последовательности (уровни 1-15)
✓ Это базис, который нужно хорошо понять
✓ Не пропускайте уровни
✓ Экспериментируйте в Sandbox между уровнями
2. Потом Remote последовательность
✓ Это более сложные сценарии реальной работы
✓ Поняв merge и rebase, remote будет логичным
3. После прохождения всех уровней
✓ Пройти Sandbox режим
✓ Создать собственные challenge сценарии
Минимально необходимо:
- Main: 1-9 (базовая работа)
- Remote: 1-3 (fetch/clone/push)
Для глубокого понимания:
- Main: 1-15 (всё)
- Remote: 1-9 (всё)
Самые ценные уровни для начинающих #
На какие уровни обратить особое внимание:
Уровень 6: Rebase (Main)
Это поворотный момент в понимании Git
- merge просто: "объединить две ветки"
- rebase сложнее: "переписать историю"
- После этого уровня многое встанет на место
- Рекомендация: потратить 30-60 минут на этот уровень
Уровень 11: Относительные ссылки (Main)
HEAD~, HEAD^2 — это мощное оружие
- Позволяет навигироваться без коммит хешей
- Используется в реальном Git постоянно
- Сложновато для начинающих, но необходимо
Уровень 15: Interactive Rebase (Main)
git rebase -i — самая полезная команда для очистки истории
- Squash: объединить несколько коммитов
- Reorder: переставить коммиты
- Delete: удалить коммиты из истории
- Очень полезно для подготовки PR
Уровень 1-3: Remote (Remote)
Clone, fetch, origin/main — основа работы с сервером
- Всё остальное будет построено на этом
- Понять разницу между local и remote веткой
Что тренажёр НЕ учит #
Важные вещи, которые приходится изучать отдельно:
КОНФЛИКТЫ MERGE:
- Тренажёр не показывает merge конфликты
- Нужно научиться разрешать вручную в редакторе
- В реальном Git: git diff, <<<, >>>
АУТЕНТИФИКАЦИЯ:
- SSH ключи, HTTPS tokens, GPG подпись
- Тренажёр это игнорирует
- В реальном Git: ssh-keygen, git config user.email
РАБОТА С БОЛЬШИМИ РЕПОЗИТОРИЯМИ:
- Тренажёр показывает маленькие репо (5-10 коммитов)
- Реальные: тысячи коммитов, медленный fetch
- Оптимизации: sparse checkout, shallow clone
РЕАЛЬНЫЕ ФАЙЛЫ:
- Тренажёр не работает с настоящими файлами
- В реальном Git: vim, код, бинарные файлы
- Работа с .gitignore, binary files
СОТРУДНИЧЕСТВО:
- Тренажёр не показывает как работает code review
- Pull Request процесс, comments, approve, merge
- Conflicts в collaborative среде
WORKFLOWS:
- Gitflow, GitHub Flow, Trunk-Based
- Как организовать workflow для команды
- Branch protection, CI/CD integration
Дополнительные ресурсы после Learn Git Branching #
Что изучить параллельно и после:
Если вы ещё не пробовали работать с Git в браузере без установки — начните с интерактивного тура по Git. Он короче и проще Learn Git Branching, и отлично подходит как первый шаг.
# 1. Git документация (официальная, русский перевод)
https://git-scm.com/book/ru/v2
# 2. Pro Git Book (бесплатно, очень детально)
https://git-scm.com/book/en/v2
# 3. Практика с реальным репо
git init my-project
cd my-project
# Выполнить команды из Learn Git Branching на реальных файлах
# 4. GitHub Learning Lab (интерактивные уроки)
https://github.com/skills
# 5. Визуализаторы Git (кроме Learn Git Branching)
- Ungit (visual Git interface)
- GitKraken (GUI Git client)
- VS Code Source Control (встроенный)
# 6. Практические задачи
- Создать несколько веток
- Сделать merge конфликт и разрешить его
- Использовать cherry-pick для копирования коммитов
- Переписать историю с rebase -i
Стратегия изучения: “Спираль обучения” #
Проход 1 (поверхностный):
→ Пройти Main 1-9 (базовые команды)
→ Пройти Remote 1-3 (fetch/push)
→ Интегрировать в реальную работу
Проход 2 (углубленный):
→ Пройти Main 10-15 (rebase, cherry-pick, reset)
→ Пройти Remote 4-9 (продвинутые техники)
→ Практиковать на реальных проектах
Проход 3 (мастерство):
→ Создавать собственные сценарии в Sandbox
→ Уметь объяснить любой шаг другим разработчикам
→ Применять в реальных workflows (Gitflow, GitHub Flow)
Частые точки где застревают #
На каких уровнях новички часто путаются:
Уровень 6 (Rebase):
- Понимание что такое "переписывание истории"
- Путаница между merge и rebase
- Совет: потратить время на визуализацию
Уровень 11 (HEAD~, HEAD^):
- Синтаксис кажется странным
- Сложно понять разницу ~ и ^
- Совет: нарисовать дерево коммитов на бумаге
Уровень 15 (Интерактивный rebase):
- Диалог кажется запутанным
- Легко заблудиться с pick/squash/reorder
- Совет: читать подсказки, не спешить
Remote уровни:
- Разница между local branch и tracking branch
- origin/main это не ветка для работы
- Совет: вспомнить что origin это сервер
Что изучить после тренажёра #
После Learn Git Branching:
1. Установить Git локально
2. Создать первый репозиторий (git init)
3. Практиковаться на реальном проекте
4. Изучить работу с remote (GitHub/GitLab)
5. Попробовать gitflow workflow
Часто задаваемые вопросы #
Нужно ли устанавливать Git для тренажёра? Нет. Learn Git Branching полностью работает в браузере, ничего устанавливать не нужно.
На каком языке интерфейс? Есть переключатель языков. Доступен русский язык.
Как работает интерактивный rebase в тренажёре? Открывается диалог где можно переставить, squash или drop коммиты — аналог vim редактора в реальном Git.
Можно ли сохранить прогресс? Прогресс сохраняется в localStorage браузера. При очистке браузера прогресс сбрасывается.
Достаточно ли тренажёра для изучения Git? Для понимания принципов ветвления — отлично. Но реальная работа с файлами, remote репозиториями и merge конфликтами требует практики с настоящим Git. Тренажёр — хорошее начало, а не полная замена практике.
Заключение #
Learn Git Branching — лучший интерактивный способ понять ветвление и операции с коммитами. Визуальный граф делает абстрактные концепции наглядными. После прохождения всех уровней вы будете уверенно работать с git branch, git merge, git rebase, git cherry-pick и относительными ссылками на коммиты. Следующий шаг — практика с реальным репозиторием: создание веток в Git и git merge.