Предыдущая статья представилаконцепции, связанные с git, мы можем просматривать состояние файла, переключаться между состояниями, создавать и объединять ветки, а также организовывать нашу историю коммитов с помощью перебазирования. С помощью этих команд и операций можно выполнить поток операций, указанный в спецификации рабочего процесса.
В этой статье представлены конкретные спецификации, в том числе разделение и наименование ветвей, различные типы ветвей имеют дело с разными сценариями, а затем представлен инструмент рабочего процесса git-flow, как упростить наши операции.
отраслевой состав
Ветки master и develop существовали всегда, и их названия не изменятся.Как правило, эти две ветки не изменяются напрямую, а объединяются из других веток.
Функция, выпуск и исправление соответственно используются для разработки функциональных точек, оптимизации, тестирования конкретной версии и экстренного решения онлайн-проблем.Будет создано несколько ветвей одного и того же типа.
Филиалы делятся следующим образом:
- master: Полностью соответствует онлайн-версии;
- develop: ветвь разработки, код, объединенный ветвями выпуска, функции и исправления, упомянутыми ниже;
- функция: фактическая ветвь разработки функциональной точки, рекомендуется создавать новую функцию для каждой функции, а функции со связанными отношениями совместно используют ветвь функции;
- выпуск: после завершения каждой разработки ветка, созданная из разработки, используется в качестве эталона для тестирования;
- исправление: эта ветка в основном используется для исправления онлайн-ошибок;
Соглашения об именах следующие:
- имя ветки функции: функция/имя
- Название ветки релиза: релиз/название
- имя ветки исправлений: исправление/имя
Например, если есть требование «оптимизировать распределенные сеансы», новая ветвь feature/optimize_distributed_session может быть создана на основе ветки разработки для разработки и объединена с веткой разработки после завершения разработки.
Детали филиала и процесс обработки
главная ветвь
Ветка master всегда согласуется с версией, работающей в сети. Никогда не изменяйте ветку master напрямую.
После того, как будет разработана версия ветки релиза и ветки исправлений, код будет объединен с веткой master, то есть ветка master в основном исходит из ветки релиза и ветки исправлений.
развивать филиал
Ветка разработки, всегда сохраняющая последний завершенный код с исправленными ошибками и создающая ветку функций на основе этой ветки при добавлении новых функций.
После разработки ветки выпуска и ветки исправлений версии они также будут объединены в ветку разработки.Кроме того, после завершения разработки функциональной функции версии она также будет объединена в ветку разработки. Другими словами, ветка разработки исходит из веток функций, выпусков и исправлений.
функциональная ветвь
Когда разрабатываются новые функции или оптимизируются существующие функции, ветки функций создаются на основе разработки. Как правило, несколько функций разрабатываются одновременно, но время запуска может быть другим.При необходимости конкретная ветка функций будет объединена с веткой разработки, а ветка выпуска будет создана для перехода в состояние тестирования.
выпускная ветвь
Когда набор функций разработан, он сначала будет объединен с веткой разработки, а когда он начнет входить в фазу тестирования, будет создана ветка выпуска.
Код ветки релиза используется в качестве эталона для тестирования.Если есть ошибки, которые необходимо исправить в процессе тестирования, разработчики сразу исправят и отправят их в ветку релиза.
После завершения теста объедините ветку выпуска с веткой мастера и разработайте ветки.На данный момент мастер является последним кодом и используется для онлайн.
ветвь исправлений
Когда в сети возникает срочная проблема, ее необходимо вовремя исправить.Используя основную ветку в качестве базовой линии, создайте ветку исправления.После завершения исправления ее необходимо объединить в основную ветку и ветку разработки.
Обращение с особыми случаями и точки внимания
В ветке разработки уже есть код фичи, которая не запущена, в это время нужно срочно запустить новую фичу, но код девелопмента не запускается, что делать?
- Создавайте функции с мастером в качестве основы, после завершения код объединяется с основной веткой;
- Чтобы гарантировать, что разработка является последним кодом, необходимо выполнить слияние с главной ветки разработки;
Взяв за основу разработку, после создания двух функциональных ветвей f1 и f2, когда f1 и f2 разработаны наполовину, что мне делать, если я обнаружу, что коды двух ветвей должны иметь зависимости?
- Лучше всего определить, связаны ли две функции до начала разработки, и если да, то создается только одна ветвь, и две функции разрабатываются вместе;
- Если он уже создан, его нужно объединить в ветку;
Следите за тем, чтобы история коммитов была чистой и аккуратной.При слиянии кода выбирайте слияние или перебазирование в зависимости от ситуации;
При использовании перебазирования обратите внимание, что после того, как объекты фиксации в ветке опубликованы в общедоступном репозитории, не перебазируйте ветку;
Отправить инструкции Спецификации:
- Описание отправки лучше всего ограничить одной строкой, менее 50 символов, кратко описать содержание обновления, а затем развернуть подробные комментарии после пустой строки;
- Если связан с jira, напишите адрес jira;
инструмент git-flow
Вышеупомянутый процесс покажется вам немного сложным, когда вы впервые столкнетесь с ним.Эти процессы можно автоматизировать с помощью инструмента git-flow. Это инструмент командной строки, который поддерживает различные платформы, такие как OSX, Linux, Windows и т. д.
инициализация
Инициализировать через команду git flow init в интерактивном режиме, в основном для согласования именования веток, рекомендуется использовать значение по умолчанию;
Разрабатывайте новые функции
git flow feature start f1 добавляет новые функции Эта операция создает ветку фич на основе develop и переключается на эту ветку.
git flow feature finish f1 завершает создание новой функции.Эта операция объединит ветку f1 с веткой разработки, удалит ветку фичи и переключится обратно на ветку разработки.
git flow feature publish f1 публикует новую ветку, публикует новую ветку с функциями на удаленном сервере, и другие пользователи также могут использовать эту ветку.
релизная версия
git flow release start r1 [BASE] Создание версии релиза, [BASE] зависит от того, какую ветку или коммит для релиза обычно разрабатывают.
git flow release publish r1 публикует ветку релиза, и другие коллеги могут видеть эту ветку и изменять некоторые незначительные проблемы.
git flow release finish r1 После завершения ветки выпуска он объединит ветку выпуска с основной веткой, пометит имя ветки выпуска, объединит ветку выпуска с веткой разработки и, наконец, удалит ветку выпуска.
Устранение неполадок в сети
Возможно, потребуется исправить производственную версию с тегами TAG в основной ветке.
git flow hotfix start VERSION [BASENAME] создает ветку исправления, параметр VERSION отмечает версию редакции, а [BASENAME] — это номер версии, заполняемый при завершении выпуска.
git flow hotfix final VERSION, когда ветка аварийного исправления завершена, код объединяется в ветки разработки и мастер. Соответственно, основная ветка помечается исправленной версией.