С обычными git и github я могу сделать обзор кода, просто создав запрос на извлечение из ветви функций, над которой я работаю, в главную ветку. Как бы я делал обзоры кода с помощью git-flow? С таким рабочим процессом, как «Завершение функции git flow», я не понимаю, где на самом деле происходит проверка кода и как git-flow или git могут облегчить это рассмотрение.
43
Ответы:
Мы наткнулись на эту проблему в последнее время. Нам действительно нравится git flow, так как он использует хороший уровень семантики (используя тот же уровень, который вы используете в групповом обсуждении: «Я начну функцию A» больше, чем «Я создам ветку, извлечу ее»), в то время как git - это очень «уровень реализации» (который также хорош и полезен, но отличается).
Проблема, с которой мы столкнулись, заключается в том
git feature finish
, что она объединяет ветку с разработкой, в то время как мы хотим, чтобы запрос на отправку отправлялся и (это важно) объединялся рецензентом , а не коммиттером, чтобы подчеркнуть принадлежность команды.Наше текущее решение:
Это согласуется с нашей практикой, с недостатком необходимости самим удалять ветку (так как мы не выполняем git flow finish). Наш следующий шаг, вероятно, будет заключаться в том, чтобы переопределить некоторые части потока git (поскольку речь идет главным образом о цепочечных командах git), чтобы учесть это (имея «чистящую» часть финиша, без слияния).
источник
Команда, с которой я работаю, использует для этого следующий процесс:
git flow feature start module_1
develop
и ветвь функции.module_1
git flow feature finish module_1
develop
Филиал выталкивается GitHub (GitHub будет автоматически маркировать запрос тянущий , как замкнутый / сливались , когда это произойдет)Обычно весь этот процесс выполняется первоначальным автором, но это не обязательно. Любой в нашей команде может вмешаться и начать этот процесс в любой момент. Все, что им нужно сделать, это проверить ветку функции и продолжить процесс.
git flow feature finish module_1
Любой, кто когда-либо запускает, получит роскошь удаления своей локальной ветки функций, но любой, кто выберет ветку, должен сделать это вручную, если он хочет использовать что-то подобноеgit branch -D feature/module_1
.Для исправлений мы используем похожий подход и создаем запрос на извлечение в GitHub перед завершением исправления.
источник
Если вы делаете обзоры кода, то я предполагаю, что у вас есть центральное хранилище, которое содержит «официальный» код. Разработчики вытягивают и толкают в этот центральный репозиторий.
Когда вы используете Gerrit , сам Gerrit становится центральным хранилищем (он имеет встроенные SSH и HTTP-серверы, которые позволяют пользователям взаимодействовать с ним в основном так же, как они уже есть). При использовании Gerrit рабочий процесс становится:
При использовании центрального репозитория другие разработчики могут видеть отправленные изменения после шага 2. Gerrit представляет рабочий процесс проверки кода, поэтому другие разработчики видят только отправленные изменения после шага 5.
Это хорошо работает с git-flow (или любой другой схемой ветвления), потому что Gerrit поддерживает просмотр изменений, сделанных в любой ветке.
источник
Вот еще одно предложение.
источник