Системы управления версиями
Этот материал представляет собой определение понятия системы управления версиями, включая контрольные вопросы, основные компоненты и теги.
Суть вопроса
Система управления версиями отслеживает каждое изменение, позволяет разработчикам работать параллельно на отдельных ветках и обеспечивает историю изменений, восстановление данных и командное взаимодействие.
Краткое описание
- DVCS (Git): полная история доступна локально
- Централизованная (Subversion): история хранится на сервере
Основные операции:
- Commit (атомарное изменение)
- Branch (параллельная разработка)
- Merge или Rebase (интеграция)
- Tag (отметить релиз)
Управление в команде:
- Pull Requests + Code Review
- Защита веток + проверки статуса (CI)
- подписанные коммиты
Отслеживаемость: ссылки на задачи в коммитах и PR + релизы через теги и заметки.
Ключевые моменты для экзамена
- Различия между Git и SVN
- Коммит содержит метаданные и хеш
- Merge vs Rebase (структура истории)
- Разрешение конфликтов (3-Way Merge + тесты)
- PR и code review для качества и соответствия требованиям
- Релизы: теги и семантическое версионирование
- Безопасность: права доступа, подписи, логи аудита
Основные компоненты
- Репозиторий (локальный и удалённый)
- Working Tree и Staging Area
- Коммиты
- Ветки
- Merge
- Rebase
- Теги
- Управление доступом
- Hooks и автоматизация
- Интеграция с CI/CD
Практический пример (рабочий процесс)
1) создать feature-ветку
2) коммитить (мелкие, понятные изменения)
3) перебазировать на main, разрешить конфликты
4) Pull Request + Code Review + CI пройден
5) Merge
6) Release-tag (например v1.4.0) + Release Notes
Преимущества и недостатки
Преимущества
- Полная история и возможность восстановления
- Параллельная разработка
- Качество благодаря code review и CI
Недостатки
- Кривая обучения (конфликты, rebase)
- Затраты на организацию политик
Типичные экзаменационные вопросы (краткие ответы)
- Merge или Rebase? Merge сохраняет ветвящуюся историю, Rebase переписывает ветку линейно.
- Зачем нужны теги? Для воспроизводимой маркировки релизов.
- Почему Pull Requests? Принцип четырёх глаз плюс автоматические проверки.
- Как связать код с требованиями? ID задачи в коммитах и PR плюс Release Notes.



