День 3: ветки и merge — fast-forward против --no-ff

Цель урока После урока вы умеете создать feature-ветку и слить её в main двумя разными способами (fast-forward и --no-ff), читаете git log --graph, понимаете разницу между тремя стратегиями merge (ff / no-ff / squash) и решаете merge-конфликт по маркерам <<<<<<< ======= >>>>>>>. Параметр Значение Bloom Применение SFIA Уровень 3 Время 40 минут Артефакт ~/.gitconfig с merge.ff = false, merge.conflictStyle = diff3, alias graph Проверка git log --graph показывает два merge-коммита с разной формой; конфликт решён Теория за 3 минуты Ветка в Git — это указатель на коммит. Не копия, не папка, не «параллельный мир». Одна строчка в файле .git/refs/heads/main с SHA. ...

16 апреля 2026 · 9 минут · 1764 слова · DevOps Way

День 4: rebase vs merge — когда переписать историю, когда сохранить

Цель урока После урока вы умеете перестроить feature-ветку поверх свежего main через git rebase, понимаете разницу между rebase и merge на уровне графа, используете rebase -i для чистки коммитов перед PR (squash / reword / drop) и знаете золотое правило: не ребейсить то, что уже запушено в публичную ветку. Параметр Значение Bloom Применение, частично Анализ SFIA Уровень 3 Время 45 минут Артефакт ~/.gitconfig с pull.rebase = true, rebase.autoStash = true, alias rb, rbi Проверка Feature-ветка успешно ребейзнута поверх main; git log --graph показывает линейную историю Теория: rebase — это не merge git merge соединяет две ветки merge-коммитом, сохраняя факт ветвления: ...

16 апреля 2026 · 11 минут · 2176 слов · DevOps Way

День 7: cherry-pick и rerere — перенос коммитов и память Git о конфликтах

Цель урока После урока вы умеете переносить отдельные коммиты между ветками через cherry-pick, различаете случаи, когда это уместно, и когда правильнее merge/rebase. Включили rerere глобально и понимаете, как Git запоминает ваше решение конфликта, чтобы применить его автоматически в следующий раз. Параметр Значение Bloom Применение, Анализ SFIA Уровень 2–3 Время 35–45 минут Артефакт rerere.enabled = true в ~/.gitconfig + алиас pick Проверка Мини-тест + сценарий с повторным конфликтом Теория за 3 минуты git cherry-pick <sha> берёт один коммит с одной ветки и применяет как новый коммит на текущую. Новый коммит имеет другой SHA, но тот же diff и то же сообщение. ...

16 апреля 2026 · 7 минут · 1380 слов · DevOps Way