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

В заметке «Git workflow для вашего проекта» я сделал вольное изложение статьи
“A successful Git branching model”, в которой описывается правильный способ использования git для выпуска релизов и хотфиксов.

Под катом — такой же вольный перевод другой статьи «Why aren’t you using git-flow?», рассказывающей о том, как можно сильно упростить себе жизнь, если для описанных операций использовать утилиту git-flow.

Почему вы не используете git-flow?git-flow — это расширение команд git.
Вы можете загрузить его здесь: https://github.com/nvie/gitflow, или установить готовый пакет (на Debian: apt-get install git-flow)

После установки 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? []

После того как вы ответите на вопросы, веткой по умолчанию в проекте станет develop — в ней вы и будете работать.

Теперь просто используйте Git как обычно, но вносите непосредственно в ветку develop только небольшие изменения. Если вы вознамеритесь сделать что-то грандиозное, просто создайте на основе develop ветку-feature.

Например, вы хотите создать страницу логина:

$ git flow feature start login

Команда создаст новую ветку с именем feature/login, основанную на develop и переключит вас на нее. Теперь творите, делайте коммиты, а когда закончите работу — закройте ветку:

$ git flow feature finish login

Ветка feature/login будет влита (merge) обратно в develop и после этого удалена.

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

$ git flow release start v0.1.0

Когда вы закроете ветку (finish), она вольется и в master и в develop, так, что master и develop будут в этот момент синхронизированы.

И еще одна удобная возможность git-flow — это обработка хотфиксов. Вы открываете и закрываете хотфиксы так же как и любые другие ветки, но они будут основаны на master:

$ git flow hotfix start somebug

Используя хотфикс вы можете быстро исправить то, что не работает в текущем релизе и при закрытии (finish) ветки результат вольется одновременно и в master и в develop.

Ну не круто ли? Чего же вы ждете? ;)

Разработка

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

captcha

Please enter the CAPTCHA text