Что такое Git? Простыми словами
Git — это в первую очередь инструмент, программное обеспечение. Но вокруг него сложилась определенная культура и практики его использования, которые иногда называют "методологией работы с Git".
Давайте разложим по полочкам:
1. Git как ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ (Инструмент)
Это конкретная программа, система контроля версий (СКВ), которую можно скачать и установить. Её создал Линус Торвальдс (создатель Linux) для управления разработкой ядра Linux.
- Что делает: Сохраняет историю изменений файлов, позволяет работать параллельно над разными версиями, объединять изменения.
- Аналоги: Другие СКВ: Subversion (SVN), Mercurial. Git — самая популярная на сегодня.
- Контекст использования (у вас): Установленный на компьютерах ваших консультантов и программистов инструмент для работы с:
Репозиторием SMD-документов (текстовые файлы с описанием процессов).
Репозиторием кода доработок 1С:ERP.
Вывод: Git как ПО — это "молоток и гвозди" для ваших цифровых артефактов.
2. Git как МЕТОДОЛОГИЯ РАБОТЫ (Практика, Workflow)
Это неофициальный набор соглашений и лучших практик по использованию инструмента Git в командной разработке. Часто говорят "Git workflow" (рабочий процесс на основе Git).
- Что это: Правила, по которым команда договаривается использовать Git: как называть ветки, как оформлять коммиты, когда и как сливать изменения.
- Примеры методологий/стратегий:
Git Flow: Строгая модель с ветками develop, feature/*, release/*, hotfix/*. Хороша для проектов с четкими версиями.
GitHub Flow / Trunk-Based Development: Более простая модель: есть основная ветка (main), вся работа ведется в короткоживущих ветках feature/*, которые быстро сливаются в main. Чаще всего подходит для таких проектов, как ваши. - Контекст использования (у вас): Это те правила, которые вы установите в команде:
"SMD-документы храним в репозитории erp-smartbuild-nexus."
"Ветку для новой задачи называем smd-<номер_задачи>-краткое-описание."
"Сообщение коммита начинаем с ключа задачи Трекера: SMD-25: ...."
"Перед слиянием в main создаем Merge Request (MR) для ревью."
Вывод: "Методология Git" — это регламент, который вы пишете для своей команды, чтобы все использовали "молоток" (инструмент Git) единообразно и эффективно.
Контекст использования в НАШЕМ проекте (ERP-Мастер)
Термин "Git" мы используем в комплексном смысле: "инструмент + встроенная в него практика работы", которая является технологическим фундаментом вашей методологии SmartBuild Nexus.
Почему это критически важно для нас:
- Для SMD-документов (Этапы 2.3, 3.1 и др.):
Инструмент (Git ПО): Хранит все версии SMD в виде текстовых файлов (.md).
Практика (Workflow): Консультант не отправляет SMD по почте. Он делает git commit с сообщением SMD-25: .... Это действие автоматически связывает результат его работы (конкретную версию файла) с задачей SMD-25 в Яндекс.Трекере.
Итог: Полная traceability (прослеживаемость). Вы всегда можете ответить: "Где итоговый SMD для процесса закупок?" — "В репозитории, закоммичен в задаче SMD-25". "Кто и когда его менял?" — "История коммитов в Git показывает: Иванов 10.01, Петров 12.01". - Для кода доработок 1С (Фаза F):
Инструмент (Git ПО): Хранит код, позволяет откатывать ошибки.
Практика (Workflow): Программист создает ветку dev-301-plm-api. Все его коммиты автоматически "подвешиваются" к задаче DEV-301. Завершение работы — это не письмо "я сделал", а Merge Request (МR), который проходит ревью.
Итог: Контроль качества и прозрачность. Руководитель видит не только факт "сделано", но и весь дифф (diff) изменений, обсуждение в MR, и знает, что код проверен коллегой перед попаданием в основную версию.
Простая аналогия из нашей сферы
- TOGAF/ArchiMate — это методология проектирования архитектуры (ЧТО делать и КАК думать).
- ПО для моделирования (например, Archi) или Mermaid.js для диаграмм — это инструмент.
- Ваш регламент "Сначала создаем SMD в три таблицы, затем рендерим диаграмму Mermaid" — это практика (workflow) использования методологии и инструментов.
Так и здесь:
- SmartBuild Nexus / TOGAF — наша методология (ЧТО делать).
- Яндекс.Трекер, Git, ИИ-агенты — наши инструменты (С ПОМОЩЬЮ ЧЕГО делать).
- Правила "Ветка = задача Трекера, коммит = отчет о выполнении этапа" — ваша практика (workflow).
Итоговый ответ: В контексте настройки Яндекс.Трекера, Git — это прежде всего инструмент для контроля версий, который мы интегрируем в свой рабочий процесс. Мы настраиваете Трекер так, чтобы он автоматически принимал "сигналы" из Git (коммиты, мерж-реквесты) и использовал их для обновления статусов задач, создавая тем самым сквозную автоматизированную цепочку от бизнес-требования до артефакта (SMD или кода). Это не методология в высокоуровневом смысле (как TOGAF), а критически важная инженерная практика и инфраструктурный компонент, делающий нашу методологию воспроизводимой и управляемой.
Продолжим. Git — это система контроля версий (СКВ). Представьте, что вы пишете книгу (например, SMD-документ или код).
- Без Git: У вас есть файл процесс_закупок_v1.docx. Вы вносите правки и сохраняете как процесс_закупок_v2.docx, затем _v3_final.docx, _v3_final_исправлено.docx. Запутаться, потерять нужную версию или понять, кто и что изменил, — очень легко.
- С Git: У вас есть одна папка (репозиторий) с файлом процесс_закупок.md. Git запоминает каждое изменение в этой папке с момента её создания. Вы можете в любой момент "откатиться" к любой прошлой версии, увидеть, какая строчка кем и когда была добавлена, и параллельно работать над несколькими экспериментальными версиями текста, не боясь сломать основную.
Ключевые сущности Git на примере нашей работы:
- Репозиторий (Repo) — главная папка проекта, где хранится вся его история. Например, репозиторий erp-smartbuild-nexus для всех SMD-документов или 1c-erp-modifications для кода доработок.
- Коммит (Commit) — снимок состояния файлов в определённый момент времени. Это основная "единица истории". Каждый коммит имеет:
Уникальный хеш (например, a1b2c3d).
Автора и дату.
Сообщение (Message), которое поясняет, что было сделано (например, "Добавлен SMD для процесса планирования закупок" или "Исправлен расчет себестоимости в модуле УУЗ"). - Ветка (Branch) — независимая линия разработки. По умолчанию всегда есть ветка main (или master) — это "чистовик", стабильная версия.
Мы создаём новую ветку feature/normalizaciya-nomenklatury от main и работаем над нормализацией, не трогая основной проект.
Другой разработчик в это время может работать в ветке bugfix/raschet-sebestoimosti. - Слияние (Merge) — процесс интеграции изменений из одной ветки в другую. Когда работа над нормализацией завершена и проверена, вы сливаете ветку feature/normalizaciya-nomenklatury в main.
Почему Git критически важен для ERP-Мастер?
- История всех SMD-документов: Вы всегда знаете, как эволюционировало описание бизнес-процесса.
- Командная работа над кодом: Несколько программистов могут работать над разными доработками 1С, не мешая друг другу.
- Атомарность и traceability (прослеживаемость): Каждое изменение (коммит) можно связать с конкретной задачей в Трекере.
Как работать с Git в Яндекс.Трекере: Интеграция и примеры
Интеграция строится на связи коммитов в Git с задачами в Трекере. Это делается через специальный синтаксис в сообщениях коммитов.
Базовый синтаксис связи
В сообщении коммита или в названии ветки нужно указать ключ задачи из Трекера.
Ключ задачи — это уникальный идентификатор, обычно вида ERP-123, BA-45, FC-12.
- В сообщении коммита: textERP-123: Добавлена спецификация API для интеграции с АСКОН
* Расширен контракт сервиса загрузки спецификаций
* Добавлены коды ошибок
Система автоматически найдёт задачу ERP-123 и привяжет к ней этот коммит. - В названии ветки (опционально, но очень полезно):
ERP-123-integration-askon-api
Пошаговые сценарии работы (на примерах)
Сценарий 1: Консультант работает над SMD-документом (Этап 2.3)
- В Трекере: Вы создали задачу [Этап 2.3] Разработка модели бизнес-процессов "Управление закупками" с ключом SMD-25.
- В Git: Консультант создаёт новую ветку от main:bashgit checkout -b smd-25-process-zakupki
- Консультант создаёт/редактирует файл docs/smd/25-upravlenie-zakupkami.md, используя нашу методологию (текстовые таблицы, Mermaid-диаграммы).
- После завершения работы консультант делает коммит: bashgit add docs/smd/25-upravlenie-zakupkami.md
git commit -m "SMD-25: Готово детальное описание процесса закупок
* Добавлен паспорт процесса и KPI
* Описаны 12 основных операционных шагов
* Приложена схема интеграции с ОМТС" - В Трекере: В задаче SMD-25 на вкладке «Коммиты» автоматически появится запись об этом коммите со ссылкой на него в Git. Руководитель видит, что задача фактически выполнена и результат уже в репозитории.
Сценарий 2: Программист выполняет доработку по ТЗ (Этап 3.5 -> Фаза F)
- В Трекере: На основе этапа 3.5 создана задача на реализацию: [F.1] Реализация API-метода загрузки ТП из Лоцман:PLM с ключом DEV-301.
- В Git: Программист создаёт ветку для задачи:bashgit checkout -b dev-301-plm-integration-api
- Программист пишет код в конфигурации 1С. Делает коммиты по мере готовности логических блоков:bashgit commit -m "DEV-301: Добавлен базовый модуль обработки обмена
* Объявлены структуры данных для спецификаций"
git commit -m "DEV-301: Реализован HTTP-клиент для запросов к PLM
* Добавлена обработка ошибок сети и таймаутов" - Когда код готов, программист создаёт Merge Request (MR) или Pull Request (PR) — запрос на слияние своей ветки dev-301-plm-integration-api в основную ветку main. В описании MR он снова указывает DEV-301.
- В Трекере: В задаче DEV-301 появляется не только список коммитов, но и ссылка на Merge Request. Руководитель или тимлид может перейти по ней, увидеть весь изменённый код (diff), обсудить его и утвердить слияние. Статус задачи можно автоматически перевести в «Готово к тестированию» при создании MR.
Сценарий 3: Тестировщик обнаружил баг во время Этапа 3.4
- Во время испытаний бизнес-сервисов (Этап 3.4) тестировщик находит ошибку.
- Он создаёт в Трекере в очереди Разработка 1С (DEV) задачу с типом «Ошибка»: [Баг] При массовой загрузке номенклатуры падает исключение с ключом BUG-45.
- Программист, исправляя её, создаёт ветку bugfix/45-mass-upload-crash.
- После исправления коммит BUG-45: Исправлено переполнение буфера при парсинге CSV автоматически связывается с задачей. Тестировщик видит, что исправление готово, и может перепроверить.
Настройка интеграции в Яндекс.Трекере
- В настройках очереди (например, Разработка 1С (DEV)) перейдите в раздел «Интеграции» -> «Репозитории».
- Добавьте ваш Git-репозиторий (с GitHub, GitLab, Bitbucket или из вашего собственного сервера). Нужно будет предоставить доступ (токен или логин/пароль).
- Настройте автоматизацию (Правила):
Правило: Когда в репозиторий erp-smartbuild-nexus поступает коммит с сообщением, содержащим SMD-* -> Добавить ссылку на коммит к задаче с соответствующим ключом.
Правило: Когда для репозитория 1c-erp-modifications создаётся Merge Request для ветки, содержащей DEV-* -> Перевести задачу в статус REVIEW и добавить ссылку на MR.
Итог: Выгоды для вашего процесса
Итого: Используем Git не только для кода, но и для всей проектной документации (SMD, ТЗ, отчёты по этапам). Это превратит наш проект в полностью воспроизводимый и отслеживаемый цифровой продукт, где каждая строчка изменений привязана к бизнес-задаче.