Почему вы до сих пор не используете git-flow?

в 11:47, , рубрики: Git, git-flow, переводы

В январе этого года (прим. год — 2010), @nvie опубликовал статью — "A successful Git branching model" (прим. перев. — на хабре есть перевод: "Удачная модель ветвления для Git"), в которой он поделился опытом как поддерживать порядок и чистоту Git-репозитария. В дополнение к этому, он выпустил git-flow, набор расширений для Git для поддержки описаной модели.

image

После установки git-flow, вы можете или начать с чистого листа в текущем каталоге, или преобразовать существующий к новой структуре:

$ git flow init

Вам надо будет ответить на несколько вопросов, но значения по умолчанию выбраны удачно:

No branches exist yet. Base branches must be created now.
Branch name for production releases: [master] 
Branch name for "next release" development: [develop] 

How to name your supporting branch prefixes?
Feature branches? [feature/] 
Release branches? [release/] 
Hotfix branches? [hotfix/] 
Support branches? [support/] 
Version tag prefix? []

После ответов, git flow поставит develop-ветку как ветку по умолчанию (или как вы её там назвали?), потому-что именно в ней вы будете работать.

Теперь, просто используйте Git как и раньше, но работайте только над небольшими дополнениями в develop-ветке. Для больших дополнений лучше создать ветку на основе develop. К примеру вы хотити разработать страницу входа для сайта:

$ git flow feature start login

Эта команда создаст новую ветку, на основе develop-ветки, с названием feature/login и переключится на неё. Делайте изменения, дополнения и commit'ы, а потом просто закончите разработку.

$ git flow feature finish login

Просто сделает слияние feature/login назад в develop и удалит ветку.

Когда весь новый функционал сделан, просто начните ветку релиза, опять же на базе develop — подняв номер версии и исправив последние баги.

$ git flow release start v0.1.0

Когда закончите оформлять релиз, git flow сам сольёт все изменения в master-ветку и назад, в develop, потому вам не надо беспокоиться что master будет впереди develop.

Последняя классная вещь, git flow поддерживает хот-фиксы! Создать такую ветку легко, как любую другую, но она основывается на master-ветке что бы быстро исправить ошибки в релизи и сделать слияние обратно в master и develop используя finish.

Чудесно, правда? Так чего же вы ждёте?

Автор: m0nhawk

* - обязательные к заполнению поля