Работа с 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 Актуализация долгосрочных веток Организация совместной разработки Создание индивидуальных веток Синхронизация изменений Интеграция изменений в основную ветку Приложение