Similar presentations:
Sistema_kontrolya_versiy_osnovnye_terminy
1.
Система контроля версий2.
Что такое система контроля версийСистема контроля версий (Version Control System,
VCS) — это программное обеспечение, которое
отслеживает изменения в файлах, позволяет сохранять
историю этих изменений и возвращаться к любой
предыдущей версии.
Простыми словами: это «машина времени» для ваших
файлов. Вы можете сохранять снимки состояния
проекта, видеть, кто и когда что изменил, и при
необходимости откатиться назад.
3.
Аналогия из реальной жизниПредставьте, что вы пишите курсовую работу
Без VCS
C VCS
Курсовая.docx, Курсовая_v2.docx,
Курсовая_исправленная.docx,
Курсовая_финал_окончательная.docx
Один файл, но с полной историей всех
изменений
Непонятно, что менялось между версиями
Видно каждое изменение и кто его сделал
Если случайно удалили абзац — восстановить
сложно
Можно откатиться к любому моменту
При совместной работе — путаница и
конфликты
Система автоматически объединяет изменения
4.
Зачем нужна система контроля версийОсновные задачи сиситемы контроля версий:
Задача
Описание
Хранение истории
Созраняются все изменения с возможностью
отката к любой версии
Отслеживание авторов
Видно, кто, когда и зачем вносил изменения
Резерное капирование
Код хранится на сервере, не теряется при
поломке компьютера
Совместная работа
Несколько разработчиков могут работать над
одним проектом одновременно
Ветвление
Можно параллельно разрабатывать новые
функции, не мешая основной версии
Разрешение конфликтов
Система помогает объеденить изменения от
разных разработчиков
5.
Типы систем контроля версийЛокальные ситсемы контроля версий
Хранят историю изменений только налокальном компьютере
разработчика
Пример: RCS( Revision Control Sistem) исторически первая, сейчас
практически не используется.
Недостаток: нет совместной работы, нет защиты при поломке
компьютера.
6.
Централизированные системы контроля версийЕсть единый централизованный сервер, где хранятся все
версии.Разработчики получают оттуда последнюю версию и
отправляют обратно свои изменения.
Примеры: Subversion(SVN), CVS
Недостатки:
• Если сервер упал-никто не может работать
• Нет локальной истории изменений
• Ветвление сложное и медленное
7.
Распределеннные ситсемы контроля версийКаждый разработчик хранит полную копию репозитория (со
своей историей) у себя локально.
Сервер используется для синхранизации.
Приемущества:
1. Работа без интернета( вся история локально)
2. Высокая скорость операцй
3. Мощное ветвление и слияние
4. Каждая копия это полноценный бэкап
Примеры : GIT( самый популярный), Mercurial
8.
9.
Основные концепции Git1. Репозиторий
Хранилище всех файлов проекта и всей истории изменений . Может быть
локальным( на вашем компьютере) и удаленным ( на сервере).
2. Коммит
«Снимок» состояния проекта в определенный момент времени. Каждый
коммит имеет:
• Уникальный идентификатор
• Автора и дату
• Сообщение с описанием изменений
10.
3. ВеткаНезависимая линия разработки. Позволяет работать над новыми
функциями, не затрагивая стабильную версию.
11.
4. СлияниеОбъединяет изменения из одной ветки в другую
5. Pull Request
Запрос на вливание изменений из ветки в основную. Сопровождвются
обсуждениям, ревью кода, автоматическими проверками.
12.
Основные операции в GitКоманда
Что делает
git init
git clone <url>
Создать новый репозиторий в текущей папке
git add <файл>
Добавить файл в «индекс» (подготовить к
коммиту)
git commit -m «сообщение»
git push
Сохдать коммит (сохранить снимок)
git pull
git branch
git checkout <ветка>
Скачать изменения с удаленного сервера
git merge <ветка>
Слить изменения из указаной ветки в текущую
git log
git status
Показать историю коммитов
Скачать удаленный репозиторий на компьютер
Отправить комиты на удаленный сервер
Показать список веток
Переключится на другую ветку
Показать текущее сотояние (что именно,
13.
Пример рабочего процесса14.
Почему система контроля версий важна для проекта ИСДля разаработки информационной системы ( например, для
магазина строительных материалов) систеема контроля версий
необходима по нескольким причинам:
Сценарий
с VCS
без VCS
Новый разработчик
присоеденился к проекту
Получается архив с кодом,
не знает что актуально
Просто клонирует
репозиторий с историей
Нашли ошибку в релизе
Непонятно, когда и кто ее
внес
Git bisect помогает найти
проблемный коммит
Нужно вернуть старую
фкнкциональность
Приходится
восстанавливать из
бэкапов вручную
Один коммит и все
откатилось
15.
Управление конфигурациейДля ИС магазина стройматериалов важно версионировать не
только код, но и:
• Скрипты миграции БД (изменения структуры базы данных)
• Конфигурационные файлы (настройки интеграций с кассами,
весами, колеровочным оборудованием)
• Документацию (ТЗ, API-спецификации, инструкции)
• SQL-запросы (для отчетов)
16.
Командная работаВ разработке ИС участвуют:
Backend-разработчики
Frontend-разработчики
Аналитики (документация)
Тестировщики (автотесты)
Все они работают с одним репозиторием, и VCS позволяет
синхронизировать их работу.
17.
Популярные платформы для хостинга GitПлатформа
Описание
Особенности
GitHub
Самая популярная
Социальная сеть для
разработчиков, Actions, большой
open-source
GitLab
Полный цикл DevOps
Встроенный CI/CD, своя система
трекинга задач, возможность
self-hosted
Bitbucket
Интергация с Atlassian
Хорошо дружит с Jira,
Confluence, Trello
Azure DevOps
От Microsoft
Интеграция с экосистемой
Microsoft, Git + CI/CD + boards
18.
ЗаключениеСистема контроля версий — это базовый инструмент современной
разработки ПО. Даже если вы разрабатываете ИС для магазина
строительных материалов силами одного разработчика, Git (или другая
VCS) дает:
Безопасность — код не теряется, история сохраняется
Эксперименты — можно пробовать смелые идеи в отдельных ветках, не
ломая основную версию
Документирование — коммиты с осмысленными сообщениями
рассказывают историю проекта
Автоматизацию — CI/CD пайплайны строятся вокруг Git (автотесты,
деплой)
software