Обзор
В этой статье представлена спецификация дизайна ветки Git для справки разработчиков.
Нормы мертвы, люди живы, я надеюсь, что нормы, установленные самим собой, не будут оплеваны.
Прежде чем говорить о спецификации ветки Git, давайте поговорим о среде, обычно используемой в процессе разработки системы.
короткое имя | полное имя |
---|---|
DEV | Development environment |
FAT | Feature Acceptance Test environment |
UAT | User Acceptance Test environment |
PRO | Production environment |
- Среда DEV: используется для отладки разработчиком.
- Среда FAT: функциональная среда приемочного тестирования, используемая тестировщиками программного обеспечения в тестовой среде.
- Среда UAT: среда приемочного тестирования пользователем, используемая для тестирования тестировщиком программного обеспечения в производственной среде.
- Среда PRO: производственная среда.
Например, доменное имя проекта:http://www.abc.com
, то доменное имя соответствующей среды можно настроить следующим образом:
- Среда DEV: настройте имя виртуального домена локально
- FAT-среда:
http://fat.abc.com
- УАТ-среда:
http://uat.abc.com
- ПРО среда:
http://www.abc.com
Затем спроектируйте ветки для разных сред.
филиал
филиал | название | окрестности | доступный |
---|---|---|---|
master | главная ветвь | PRO | да |
release | предстартовая ветвь | UAT | да |
hotfix | ветвь аварийного исправления | DEV | нет |
develop | тестовая ветвь | FAT | да |
feature | Филиал разработки требований | DEV | нет |
главная ветвь
master
Основная ветвь используется для развертывания в официальной среде (PRO), как правило,release
илиhotfix
Ветки объединены, ни при каких обстоятельствах вам не разрешается изменять код непосредственно в основной ветке.
выпускная ветвь
release
это предзапусковая ветвь для развертывания в предзапусковой среде (UAT), всегда сохраняющая одну и ту жеmaster
Ветви согласуются, как правило, поdevelop
илиhotfix
Слияние веток, не рекомендуется непосредственно вrelease
Измените код прямо в ветке.
если вrelease
Возникла проблема с тестом ветвления, и требуется регрессионная проверка.develop
Branch, чтобы узнать, существует ли эта проблема.
ветвь исправлений
hotfix
Для ветвей экстренных исправлений используется соглашение об именахhotfix-
начало.
Когда в сети возникает срочная проблема, которую необходимо решить немедленно, она должна основываться наrelease
илиmaster
создание веткиhotfix
Ветку, после завершения фикса сливаем вrelease
илиdevelop
Branch и удалите его, как только исправление станет доступным.
развивать филиал
develop
Для тестовой ветки, используемой для развертывания в тестовой среде (FAT), всегда сохраняйте последний завершенный код с исправленными ошибками, который можно определить в соответствии с размером требований.feature
Филиал сливают, либо развивают прямо на нем.
Только код, который удовлетворяет тесту, может быть объединен или отправлен на него.
функциональная ветвь
feature
Разрабатывайте ветки для требований, правила именованияfeature-
Сначала удалите требование, как только оно будет запущено.
Это может быть немного сложно понять, поэтому вот несколько сценариев разработки.
сцена разработки
добавлены новые требования
Существует новое требование к управлению заказами, которое необходимо разработать, сначала создайтеfeature-order
Ветвь, вопрос, на какой ветке основана эта ветка?
Если есть непроверенные требования, основанные наmaster
Создайте.
Если нет непроверенных требований, основанных наdevelop
Создайте.
-
нуждается в
feature-order
Когда ветка разработана и готова к тестированию, ее необходимо определить в первую очередьdevelop
Нет непроверенных требований, тогда разработчики могут объединить код вdevelop
(Тестовая среда) для тестирования тестировщиками. -
тестировщики
develop
(Тестовая среда) После прохождения теста разработчики выпустят код дляrelease
(Среда перед запуском) для тестирования тестировщиками. -
тестировщики
release
(Предстартовая среда) После прохождения теста разработчики выпустят код дляmaster
(формальная среда) для тестирования тестировщиками. -
тестировщики
master
(Формальная среда) После прохождения теста персоналу НИОКР необходимо удалитьfeature-order
филиал.
нормальная итерация
Существует итеративное требование для управления заказами, если человеко-час разработки developДля разработки, если работа по разработке > 1d, то вам нужно создать ветку и развиваться на ветке.
Тестирование после разработки и онлайн-процесс соответствуют процессу добавления новых требований.
Исправление ошибок тестовой среды
существуетdevelop
В тесте есть ошибка, если время ремонта developРемонт, если время ремонта > 2 часов, необходимо отремонтировать в филиале.
Исправленный тест и онлайн-процесс аналогичны процессу добавления новых требований.
Изменить ошибки среды перед запуском
существуетrelease
В тесте есть баг, в первую очередь его надо вернутьdevelop
В филиале такая же проблема.
Если он существует, процесс исправления аналогичен процессу устранения ошибки тестовой среды.
Если он не существует, такая возможность встречается относительно редко, большинство из которых связаны с проблемами совместимости данных, проблемами конфигурации среды и т. д.
Изменить официальные ошибки среды
существуетmaster
В тесте есть баг, в первую очередь его надо вернутьrelease
иdevelop
В филиале такая же проблема.
Если он существует, процесс исправления аналогичен процессу устранения ошибки тестовой среды.
Если его нет, то эта возможность относительно невелика, и большинство из них — это проблемы совместимости данных, проблемы с конфигурацией среды и т. д.
Срочно исправить ошибки официальной среды
Баги не проверялись в процессе тестирования, а баги появились после запуска в течение определенного периода времени, которые нужно срочно исправлять.
Я лично понимаю, что аварийный ремонт означает, что нет времени на проверку тестовой среды, но все же рекомендуется проверить среду перед запуском.
-
если
release
Если в ветке есть непроверенные требования, она основывается наmaster
Создайтеhotfix-xxx
филиал и опубликовать вmaster
проверка, после проверкиmaster
код объединен вrelease
иdevelop
разветвить и удалитьhotfix-xxx
филиал. -
если
release
В ветке нет непроверенных требований, ноdevelop
Если в ветке есть непроверенные требования, она основывается наrelease
Создайтеhotfix-xxx
филиал и опубликовать вrelease
Проверка, последующий процесс соответствует онлайн-процессу, после проверкиmaster
код объединен вdevelop
разветвить и удалитьhotfix-xxx
филиал. -
если
release
иdevelop
В ветке нет непроверенного требования, просто прямо вdevelop
После завершения исправления в ветке опубликуйте наrelease
Проверка, последний процесс такой же, как онлайн-процесс.
Параллельное тестирование
В проекте параллельно разрабатывались два требования, и они параллельно тестировались, но сроки запуска были разные.
Два варианта, о которых я могу думать:
- Разверните еще один набор веток для тестирования тестировщиками.
- использовать
git cherry-pick
«Выбери и выбери» совершает
У вас есть хорошее решение для параллельного тестирования? Добро пожаловать, чтобы оставить сообщение.
Спецификация журнала фиксации
Информация должна быть заполнена внимательно!
Предлагаемая справочная спецификация:<type>(scope):<subject>
Например: исправить (модуль домашней страницы): исправить всплывающие ошибки JS.
type
Указывает тип действия, которое можно разделить на:
- исправить: исправить ошибку ххх
- подвиг: добавить функцию xxx
- тест: функция отладки xxx
- стиль: изменить формат кода xxx или комментарий
- документы: изменить документы xxx
- рефакторинг: функция или метод рефакторинга xxx
scope
Указывает область влияния, которую можно разделить на: модули, библиотеки классов, методы и т.д.
subject
Указывает краткое описание, желательно не более 60 слов, при наличии номера Jira соответствующего бага рекомендуется добавить его в описание.
резюме
Это все, что я могу придумать на данный момент Спецификации не статичны для справки.