Я работаю над рабочим процессом git для реализации в небольшой команде. Основные идеи в рабочем процессе:
- Существует общий мастер проекта, в который все члены команды могут писать
- Вся разработка ведется исключительно на тематических ветках
- Функциональные ветви - это код, проверенный членом команды, отличным от автора ветви.
- Ветвь функций в конечном итоге объединяется с общим мастером, и цикл начинается снова
В статье подробно описываются этапы этого цикла:
https://github.com/janosgyerik/git-workflows-book/blob/small-team-workflow/chapter05.md
Имеет ли это смысл или я что-то упустил?
Я думаю, что вам не хватает темы непрерывной интеграции. Это должно быть частью любой настройки разработки.
С ветвями функций у вас есть проблема, заключающаяся в том, что вы не интегрируетесь непрерывно, а только после завершения функции.
Если разветвленная функция недолговечна, это может быть приемлемым, но это определенно то, что следует учитывать.
Другой альтернативой является настройка сборок CI для каждой ветви функций. Это действительно помогает, но это не интеграция. Это становится очевидным, как только вы обнаружите свою первую ошибку, которая не появляется ни в функции A, ни в функции B, но в тот момент, когда вы интегрируете функцию A и B
Третий вариант - сделать слияние в какой-либо ветви интеграции частью сборки CI. Это истинная интеграция, и она действительно работает достаточно хорошо с git, если работа несколько отделена, но вызывает конфликты слияния во время сборки, приводящие к неудачным сборкам.
источник
Вы можете вдохновиться Gitflow или Twgit .
Gitflow обобщает свой подход как:
Twgit описывает себя следующим образом:
Оба инструмента доступны на github .
источник