# Утилита для git Используется для автоматизации выпуска релизов и переключения между ветками в проекте решения. Для запуска используйте `gsf-cli\gsf_git.cmd`. ```{tip} Для удобной работы из консоли решения используйте алиас `gsfp_git.cmd`. Консоль решения можно открыть ярлыком `workspace/links/[project_name]/start_shell.cmd` ``` Алгоритм выпуска релизов: 1. Откройте консоль решения для выпуска релиза 2. Выпустите релиз модуля \ В каталоге модуля выполните `gsfp_git create_release` 3. Откройте консоль решения для релиза ```{tip} Для переключение решения в релизную ветку в каталоге решения выполните `gsfp_git switch release` ``` 4. Переключите релиз \ Для этого в каталоге модуля выполните `gsfp_git switch [release_name]` 5. Сделайте `commit` и `push` для проекта решения ## Commands: ~~~ usage: gsf_git.py [-h] [-p P] [-w W] [-m M] [-s] [--all_modules] cmd ... positional arguments: cmd Команды full_help Распечатать справку refresh Обновить исходный код решения из git репозитория create_generation Выпустить поколение create_major Выпустить мажорную версию create_minor Выпустить минорную версию create_build Выпустить билд create_patch_branch Создаёт ветку для патча create_patch Выпустить патч switch Переключится на другую ветку update_to_last_tag Актуализирует модули до последних версий тегов switch_to_last_tag Переключает модули на последних версий тегов status Отобразить статус version_info Отобразить информацию по версиям options: -h, --help show this help message and exit -p P Имя проекта -w W Рабочий каталог -m M Имя модуля -s Решение --all_modules Все модули ~~~ ### Full_help ~~~ usage: gsf_git.py full_help [-h] options: -h, --help show this help message and exit ~~~ ### Refresh ~~~ usage: gsf_git.py refresh [-h] Обновляет исходный код решения и модулей git options: -h, --help show this help message and exit ~~~ ### Create_generation ~~~ usage: gsf_git.py create_generation [-h] [-m M [M ...]] [--use_pipeline] Выпускает поколение. При этом: - Обрабатывается версии для корректного отображения в тегах - Увеличивается текущее поколение и билд версии модулей - Происходит создание тегов по текущим версиям модулей - Происходит commit и push изменений и тегов - Нельзя создать поколение от патча options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления --use_pipeline Запускать пайплайн для выпуска версии вместо попытки пуша в мейн ~~~ ### Create_major ~~~ usage: gsf_git.py create_major [-h] [-m M [M ...]] [--use_pipeline] Выпускает мажорную версию. При этом: - Обрабатывается версии для корректного отображения в тегах - Увеличиваются текущие мажорная и билд версии модулей - Минорная и релизная версия зануляются - Происходит создание тегов по текущим версиям модулей - Происходит commit и push изменений и тегов - Нельзя создать мажорную версию от патча options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления --use_pipeline Запускать пайплайн для выпуска версии вместо попытки пуша в мейн ~~~ ### Create_minor ~~~ usage: gsf_git.py create_minor [-h] [-m M [M ...]] [--use_pipeline] Выпускает минорную версию. При этом: - Обрабатывается версии для корректного отображения в тегах - Увеличиваются текущие минорная и билд версии модулей - Релизная версия зануляется - Происходит создание тегов по текущим версиям модулей - Происходит commit и push изменений и тегов - Нельзя создать минорную версию от патча options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления --use_pipeline Запускать пайплайн для выпуска версии вместо попытки пуша в мейн ~~~ ### Create_build ~~~ usage: gsf_git.py create_build [-h] [-m M [M ...]] [--use_pipeline] Выпускает билд. При этом: - Обрабатывается версии для корректного отображения в теге - Увеличивается текущие билд версии модулей - Происходит создание тегов по текущим версиям модулей - Происходит commit и push изменений и тегов - Нельзя создать билд от патча options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления --use_pipeline Запускать пайплайн для выпуска версии вместо попытки пуша в мейн ~~~ ### Create_patch_branch ~~~ usage: gsf_git.py create_patch_branch [-h] Создаёт ветку для патча. При этом: - Создаётся новая ветка, если её нет - Локальная ревизия устанавливается в ветку с патчем - Ошибка, если есть незакоммиченные изменения - Ошибка, если команда вызвана сразу на несколько модулей options: -h, --help show this help message and exit ~~~ ### Create_patch ~~~ usage: gsf_git.py create_patch [-h] [-m M [M ...]] Выпускает патч. При этом: - Обрабатывается версия для корректного отображения в теге - Увеличивается текущая версия модуля по патчу - Происходит создание тегов по текущим версиям модулей options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления ~~~ ### Switch ~~~ usage: gsf_git.py switch [-h] (-branch BRANCH | -mb MB [MB ...]) Переключает репозиторий на другую ветку. При запуске от решения: - Изменяется ветка в настройках проекта - Происходит обновление репозиториев При запуски от модуля: - Изменяется ветка в файле `project.yaml` Внимание: Данные изменения не попадают в commit - Происходит обновление исходного кода по модулю options: -h, --help show this help message and exit -branch BRANCH -mb MB [MB ...] : ~~~ ### Update_to_last_tag ~~~ usage: gsf_git.py update_to_last_tag [-h] [-m M [M ...]] Актуализирует модули до последних версий тегов. Модули, в которых указана ветка, а не тег - игнорируются. При этом: - Изменяется ветка в файле `project.yaml` Внимание: Данные изменения не попадают в commit - Происходит обновление исходного кода по модулю options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления ~~~ ### Switch_to_last_tag ~~~ usage: gsf_git.py switch_to_last_tag [-h] [-m M [M ...]] Переключает модули на последние версии тегов. При этом: - Изменяется ветка в файле `project.yaml` Внимание: Данные изменения не попадают в commit - Происходит обновление исходного кода по модулю options: -h, --help show this help message and exit -m M [M ...] Список модулей для обновления ~~~ ### Status ~~~ usage: gsf_git.py status [-h] Отображает информацию о состоянии решения и модулей. Позволяет увидеть список модулей по которым необходимо сделать commit или push. Решение в списке обозначено символом `.` options: -h, --help show this help message and exit ~~~ ### Version_info ~~~ usage: gsf_git.py version_info [-h] Отображает информацию по версиям решения и модулей. Решение обозначается символом `.` options: -h, --help show this help message and exit ~~~