Работа с Git# Введение Предисловие Назначение Аудитория Содержание Предварительные требования Git Основные определения Ключевые особенности Взаимодействие с Git Глоссарий (ключевые термины и концепции) Установка и настройка Установка Git в Windows Способ 1: Установка с официального сайта Способ 2: Установка через пакетный менеджер Winget Установка Git в ОС семейства GNU/Linux (на примере ALT Linux) Установка дополнительных инструментов (рекомендуемых) Первичная настройка Git Дополнительная документация Основные материалы по системе управления версиями Git Материалы по работе с командной строкой (Terminal/Shell) Документация по интеграции Git со средами разработки (IDE) и редакторами кода Дополнительные рекомендованные ресурсы Основные понятия Git Структура репозитория Введение: что такое репозиторий Git Логическая структура: состояния файлов Рабочий процесс работы с состоянием файлов Работа через командную строку (Terminal / CLI) Работа через интегрированную среду разработки (IDE) Физическая структура Скрипты-хуки Глобальные файлы исключений База данных объектов objects/* Объекты Система ссылок Указатели Конфигурационные файлы Прочие важные элементы Логическая структура Коммит Правила наименования коммитов Метаданные коммита Основные свойства 1. Неизменяемость 2. Атомарность 3. Ссылочная целостность Коммит и ветвление Ссылки Тег Типы тегов Ветка Особенности веток Ветвление веток HEAD и detached HEAD Ветка Правила наименования веток Слияние веток Типы слияния Fast-Forward слияние Recursive слияние (трехстороннее) Слияние с отклонением fast-forward (–no-ff) Процесс слияния Стратегии слияния Лучшие практики Команды слияния Merge request Зачем он нужен Процесс работы с Merge Request Шаг 1: Подготовка перед созданием MR Шаг 2: Создание Merge Request Шаг 3: Ревью и процесс обсуждения Шаг 4: Слияние (Merge) Идеальный Merge Request Ответы на частые вопросы Примеры рабочих процессов Разработка несрочного функционала или исправлений Экстренные исправления (hotfix) или срочный функционал для релизной ветки Копирование экстренных исправлений в основную ветку разработки Копирование одиночного коммита Перенос диапазона коммитов Перенос изменений в релизную ветку через rebase Актуализация долгосрочных веток Организация совместной разработки Создание индивидуальных веток Синхронизация изменений Интеграция изменений в основную ветку Приложение Global GitFlow Рекомендации по настройке окружения Основные ветки Вспомогательные ветки Тестирование веток Процесс выпуска релизов Организация разработки Заключение Выпуск релизов ядровых модулей Версионирование релизов Управление задачами через релизы в Support Процесс выпуска релизов Примеры жизненного цикла версии Организация разработки Выпуск тегов ядровых модулей Расписание Подготовка Процедура выпуска Завершение выпуска