Skip to content
IRC-CodingIRC-Coding
GitSubversionCommitBranchMergeRebase

Git: ветки, merge, rebase, pull requests

Git vs Subversion, commits, branches, tags, merge vs rebase, pull requests, разрешение конфликтов, защита веток.

S

schutzgeist

1 min read
Git: ветки, merge, rebase, pull requests

Системы управления версиями

Этот материал представляет собой определение понятия системы управления версиями, включая контрольные вопросы, основные компоненты и теги.

Суть вопроса

Система управления версиями отслеживает каждое изменение, позволяет разработчикам работать параллельно на отдельных ветках и обеспечивает историю изменений, восстановление данных и командное взаимодействие.

Краткое описание

  • 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 для качества и соответствия требованиям
  • Релизы: теги и семантическое версионирование
  • Безопасность: права доступа, подписи, логи аудита

Основные компоненты

  1. Репозиторий (локальный и удалённый)
  2. Working Tree и Staging Area
  3. Коммиты
  4. Ветки
  5. Merge
  6. Rebase
  7. Теги
  8. Управление доступом
  9. Hooks и автоматизация
  10. Интеграция с 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)
  • Затраты на организацию политик

Типичные экзаменационные вопросы (краткие ответы)

  1. Merge или Rebase? Merge сохраняет ветвящуюся историю, Rebase переписывает ветку линейно.
  2. Зачем нужны теги? Для воспроизводимой маркировки релизов.
  3. Почему Pull Requests? Принцип четырёх глаз плюс автоматические проверки.
  4. Как связать код с требованиями? ID задачи в коммитах и PR плюс Release Notes.

Основные источники

  1. https://git-scm.com
  2. https://www.atlassian.com/git
Назад к блогу
Share:

Nächster Artikel in Инженерия программного обеспечения

Weiterlesen
Расширенная модель Waterfall: фазы и обратная связь

Похожие статьи