Перейти к основному содержимому

Git

Git — это система контроля версий, которая помогает отслеживать изменения в проекте. Его применение охватывает не только разработчиков, но и системных аналитиков, участвующих в проектировании архитектуры, интеграции процессов и анализе истории изменений для аудита и оптимизации бизнес-процессов.

Git позволяет

  • Хранить историю изменений проекта. Git фиксирует, кто и в какой момент внёс изменения, что особенно важно для документирования требований и спецификаций
  • Параллельно работать над файлами. Параллельная работа над ветками позволяет минимизировать конфликтующие изменения, что облегчает анализ альтернативных решений
  • Откатиться к предыдущим версиям проекта, если что-то пойдёт не так, что критически важно для анализа влияния изменений и проведения регрессионного аудита

Принцип работы Git

  1. Разработчик создаёт свою ветку от главного проекта, куда вносит свои изменения
    Совет для аналитиков: Выделение отдельных веток для экспериментальных изменений помогает проводить анализ альтернативных вариантов архитектуры без риска затронуть основную линию разработки.
  2. В своей ветке разработчик делает необходимые изменения в коде или документации, которые затем фиксируются в истории изменений
    Совет для аналитиков: Фиксация изменений с подробными комментариями обеспечивает прослеживаемость решений и упрощает последующий анализ.
  3. После того как работа в ветке завершена, разработчик сохраняет изменения, создавая коммиты. Коммиты отражают историю изменений и могут быть просмотрены в любой момент
    Рекомендация: Используйте атомарные коммиты для логичного разделения изменений, что облегчит ревизию и анализ последствий изменений.
  4. Слияние изменений. Когда изменения готовы, создаётся Merge Request, чтобы влить изменения в мастер-ветку. До этого момента все изменения находятся в отдельной ветке проекта. После слияния с мастер-веткой изменения вступают в силу для всего проекта
    Рекомендация для аналитиков: При проведении слияния обращайте внимание на стратегию ветвления (GitFlow, trunk-based development) и оцените влияние слияния на общую архитектуру системы.
  5. Контроль версий. Git позволяет отслеживать все изменения, предоставляя возможность возвращения к любому предыдущему состоянию проекта, если это необходимо
    Практический момент: Используйте команды вроде git bisect для поиска источника проблем, что может существенно ускорить диагностику сложных ошибок в системе.

Расширенные возможности Git для системных аналитиков

Системным аналитикам, работающим на уровне middle и выше, полезно учитывать следующие аспекты при работе с Git:

  • Стратегии ветвления и слияния

    • GitFlow: Четкое разделение веток для разработки, релизов и поддержки.
    • Trunk-Based Development: Упрощение процесса интеграции, ускорение выпуска функционала.
    • Rebasing vs Merge: Понимание различий для поддержания чистоты истории и облегчения аудита изменений.
  • Интеграция с CI/CD

    • Настройка автоматизированных тестов и сборок при каждом коммите
    • Использование Git hooks для автоматизации проверок качества кода и документирования изменений
  • Анализ и аудит изменений

    • Инструменты для анализа логов (git blame, git log --graph)
    • Сравнение версий для выявления критических изменений в спецификациях и архитектуре системы
  • Документирование процессов

    • Применение Docs as Code для поддержки актуальной документации
    • Связывание коммитов с задачами в системах управления проектами для улучшения прослеживаемости
  • Управление большими репозиториями

    • Использование подмодулей и монорепозиториев
    • Оптимизация скорости операций с большими объемами данных с помощью настройки Git-объектов

Курсы (бесплатные)

  1. «Основы работы с Git» от Яндекс.Практикума
    16 часов обучения, свободный график, теория и тесты для самопроверки, поддержка специалистов, электронное свидетельство о прохождении курса, доступ после авторизации через Яндекс ID
  2. Git для начинающих от Слёрм
    Доступ придёт на указанную почту после регистрации, закрытый Telegram-чат, теория и практические задания, без сертификата
  3. Введение в Git от Хекслет
    Видеоуроки, лекции, тренажеры с практикой, бессрочный доступ к теории, асинхронный формат обучения, без сертификата, доступ после регистрации
  4. Основы Git из Степика
    Много практики
  5. Git. Базовый курс от GeekBrains
    13 видеоуроков, без сертификата, доступ после записи

Видосы с YouTube

  1. GIT - Полный Курс Git и GitHub Для Начинающих — одно видео на 4 часа полного погружения
  2. Что такое Git для Начинающих — GitHub за 30 минут
  3. Уроки по Git и GitHub от ITDoctor
  4. Базовый курс по Git от Devcolibri

Интерактивные гайды на русском

  1. Git How To — это интерактивный тур, который познакомит с основами Git
  2. LearnGitBranching — веб-приложение по интерактивному погружению в Git

Полезные статьи

  1. Что такое GitHub и как он работает
  2. Как начать работать с GitHub: быстрый старт
  3. Про стратегии ветвления в Гите
  4. 19 советов по повседневной работе с Git
  5. Как настроить работу с Git в Intellij IDEA

Шпаргалка по командам

Git-commands

Книга

Pro Git — основное чтиво по Git от Скотта Чакона и Бена Штрауба