# GIT GUT! ### 1. Проработка и обсуждение задачи Проработка задач, выяснение и обсуждение деталей ведется как и раньше на форуме. Тут ничего не меняется. ### 2. Начало разработки Создаем новую ветку в git и начинаем писать код в ней. дать ссылу на репу ### 3. Где можно разрабатывать и тестировать код Есть несколько вариантов: - **Sys-dev**. Новый код можно тестировать на sys-dev точно так же как и раньше, залив его через rsync, deploy, шторм etc - **Три стенда**. Собрать можно джобой https://jenkins-hg.x340.org/job/pipelines/job/k8s-three-stends/ - **JustTry** стенды. Для каждой ветки можно создать свой стенд. Если стенд еще не создавался для ветки то идем `CI/CD -> Pipelines -> Run Pipeline`, выбираем ветку, указываем необходимые параметры и нажимаем `Run pipeline`. При push в ветку стенд обновится автоматически. ![](https://i.imgur.com/bfV7tVe.png) ### 4. Commit, Push, Merge Request После того как код написан, проверен и сделан push -- можно делать merge request. Старайтесь коммитить код осмысленными кусками - это упростить его ревью в дальнейшем. ### 5. Код-ревью, исправление замечаний, общие комментарии к коду Как и раньше создаем КР в задаче на форуме, указав ссылку на merge request. Процесс ревью может проходить на форуме или в gitlab, внутри merge request. ### 6. Релиз После того как ревью пройдено, добавляем кнопку релиз в задаче (через "добавить дифф", указав ссылку на merge request). Перед добавлением ссылки произойдет проверка на возможность сделать merge. Если все ок - кнопка добавится и можно запускать релиз. Смотрим на кибаны и мониторим ошибки. ### 7. Откат Если во время релиза **что-то пошло не так**, то есть два варианта: - Исправить ошибку и выкатить fix (если это быстро и безболезненно) - Откатить изменения и спокойно найти и починить проблему. Для этого заходим в список merge request, находим свой (во вкладке Merged) и нажимаем кнопку `Revert`. Она создаст новый MR, обратный к исходному и дальше запускаем его как в п.6. ![Как откатить](https://i.imgur.com/aWZsnyi.png) --- # FAQ ### Я не знаю git. Что мне можно почитать? - Отличная книга https://git-scm.com/book/ru/v2 - Шпаргалка по командам https://training.github.com/downloads/ru/github-git-cheat-sheet/ - Gitflow https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow ### У меня есть куча веток с кодом в trac над которым я еще работаю. Он пропадет? SVN и trac не выключаются и будут доступны для чтения столько, сколько нужно. Код можно очень просто перенести через unified diff (есть внизу любого диффа из trac). Полученый файл применить как patch в Шторме в новой ветке из git. ![](https://i.imgur.com/Fam7MMj.png) ### История коммитов и блейм - все потеряется? Мы перенесли все коммиты в git и все сохранилось - можно будет блеймить так же как и раньше.