← Все этапы маршрута

История как граф, не папка с копиями · R3

R3. Git и командная работа

Цель

Понимать модель Git и уверенно работать с ветками, конфликтами, PR, релизами и восстановлением истории.

Что освоить

  • working tree, index и commit graph
  • branch, merge, rebase и remote
  • pull request и code review
  • revert, reset, reflog и tags
  • .gitignore и SSH authentication

Материалы основного пути

  1. Pro Git, 2-е издание RU · Книга
    • Начать здесь. главы 1–3: основы, ветвление и remote workflows
    • Обязательно. разделы 7.1–7.7: revision selection, reset, merge и rerere
  2. Learn Git Branching RU · Тренажёр
    • Практика. Introduction Sequence и Ramping Up, затем remote basics

Практика

Feature branch, PR, искусственный конфликт, tagged release и восстановление потерянного коммита.

Проверьте результат

Самостоятельно решаете конфликт, различаете revert/reset и объясняете, когда опасен rebase.

Вопросы, условия приёмки и доказательства

Ответьте и покажите

  • Когда revert безопаснее reset?
  • Почему rebase shared branch опасен?

Условия приёмки

  • Есть reviewed PR и конфликт
  • Tag указывает на релизный commit
  • Потерянный commit восстановлен через reflog

Учебный отказ: Удалить локальную branch и сделать hard reset, затем восстановить нужный commit без копии каталога.

Артефакт: Git-репозиторий с PR, конфликтом, tag и восстановленным commit

История показывает feature branch/merge или rebase; конфликт решён; потерянный commit найден через reflog; destructive operation не затронула shared branch.

Хорошее доказательство: URL PR/tag + компактный git log --graph + transcript reflog/recovery.

Недостаточно: Репозиторий с одной main-веткой и линейными tutorial-коммитами без конфликта/recovery.

Углубление и справочные материалы

Темы для углубления

  • rebase --onto и bisect
  • signed commits/tags
  • release branching и protected history

Найти регрессию через bisect, перенести серию коммитов между базами и выпустить подписанный tag.

Результат: История остаётся читаемой; потерянный commit восстановлен через reflog; destructive rewrite не затрагивает shared branch.

Дополнительные материалы

  • GitHub Skills EN · Тренажёр
  • Git User Manual EN · Документация

    Справочник. обращаться к object model, recovering и rewriting history

  • Oh My Git! EN · Тренажёр

    Дополнительно. визуальная практика графа commit/branch/rebase