↓Перейти к содержанию
  1. Git: руководства и команды/

Learn Git Branching: интерактивный тренажёр для изучения Git

··8 минут·

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.

По теме #