Давным-давно небольшая команда веб-разработчиков, с которыми я работаю, начала использовать git для веб-разработки. Тогда мы просто посвятили себя постановке или мастерству, а затем часто сливались между ними. Это было лучше, чем ничего, но это был и беспорядок.
Не так давно мы приняли рабочий процесс gitflow. Хотя это, безусловно, лучше, чем хаос, который был до этого, он кажется несколько громоздким и чрезмерно ориентированным на выпуск / этап. Мои коллеги-разработчики часто просят меня уточнить, как это должно работать и что должно сливаться, а что нет. В целом он кажется плохо приспособленным для веб-разработки, где мы часто развертываем код и не отслеживаем конкретные этапы выпуска.
По недавнему предложению друзей я начал изучать GitHub Flow . Чтение поста Скотта Чакона здесь совершенно точно больно:
Итак, почему мы не используем git-flow на GitHub? Ну, главная проблема заключается в том, что мы развертываем все время. Процесс Git-потока разработан в основном вокруг «выпуска». На самом деле у нас нет «релизов», потому что мы внедряем в производство каждый день - часто несколько раз в день.
FWIW, я также рассмотрел этот приятный обзор рабочих процессов на сайте Atlassian: https://www.atlassian.com/git/workflows#!workflow-feature-branch
Однако они ВСЕ выглядят как неудачный выбор для веб-разработки в небольшой команде и снова ориентированы на крупные выпуски приложений, а не частые / ежедневные выпуски.
Это вопрос к SE, который просит сравнить git-поток с github-потоком /programming/18188492/what-are-the-pros-and-cons-of-git-flow-vs-github -течь
В общем, это хороший ответ, но, как я уже упоминал в своем комментарии ниже, meta.programmers.SE, похоже, указывает на то, что вопросы об общих лучших практиках рабочего процесса относятся к этому, и я надеялся на более широкий список возможных ответов, чем просто git-flow и github. -поток, в то время как конкретные для веб-разработки Поэтому я думаю, что здесь возникает новый вопрос.
Что, по вашему мнению, является лучшим / предпочтительным рабочим процессом на основе git для небольшой команды веб-разработчиков, работающей над проектами с довольно непрерывным развертыванием? Это GitHub-поток или что-то еще?
источник
Ответы:
Сначала я хотел бы сделать небольшое резюме о различных рабочих процессах, которые вы изучили, и вы думаете, что они не подходят для того вида разработки, над которым вы работаете:
Централизованный ( Источник ): почти как рабочий процесс SVN, но теперь в распределенной среде. Каждый разработчик работает с персональной копией
master
и вносит измененияorigin/master
напрямую или по запросу.Характеристика ветки ( Источник ): Ну, это. Каждый разработчик, работающий над определенной функцией, должен работать над определенной веткой, предназначенной только для этой функции. Эта ветвь элемента должна быть создана из
master
или из другой ветви элемента. В конце концов все объединяется сmaster
.Gitflow ( источник ): две основные ветви отслеживают историю проекта,
develop
иmaster
. Еще 3 ветви называетсяhotfix
,release
иfeature
изменения владения сделаны непосредственноmaster
для фиксации важных производственных ошибок, номера изменения версии и других деталей до отпуска или работу по конкретной функции так же , как это ответвление , соответственно.Поток GitHub ( Источник ): Разработчики создают
feature
веткуmaster
. Изменения проталкиваются через запрос на извлечение. Изменения, принятые в систему,master
сразу же запускаются ботом GitHub Hubot.Для части вашего вопроса по разработке ответ зависит от опыта вашей команды. Они приходят из среды SVN? Тогда вам следует придерживаться централизованного подхода, поскольку он больше всего напоминает SVN. Чувствуют ли они себя комфортно, работая с Git? Тогда, возможно, вам не следует пытаться адаптировать рабочий процесс своей команды к какому-либо из них, а реализовывать свой собственный, разработанный в соответствии с вашими потребностями, которые, если я правильно понимаю, это гибкость разработки и быстрое развертывание.
Я также думаю, что вы должны сосредоточиться на улучшении последнего. Из чего состоит ваш конвейер развертывания ? В статье « Непрерывная доставка: надежные выпуски программного обеспечения с помощью автоматизации сборки, тестирования и развертывания » авторы определяют возможные причины нечастых развертываний, некоторые из которых:
Есть ли что-то из того, что вы могли бы улучшить? Возможно, вы могли бы рассказать нам немного больше о том, как вы и ваша команда справляетесь с этой частью проекта.
источник