Home > development, translation > [Перевод] Усовершенствуйте свой Git Workflow

[Перевод] Усовершенствуйте свой Git Workflow

Настраиваем git-flow

Установить git-flow на OS X проще простого с помощью homebrew

brew install git-flow

На страничке проекта git-flow Вы можете найти инструкции по установке на Linux и Windows.

Установка git-flow добавляет несколько очень удобных git-команд для создания и управления ветками фич и релизов. Новый git репозиторий создается с веткой master. По умолчанию в git-flow эта ветка используется для production-а. В свою очередь основная разработка происходит в ветке develop. Следует отметить, что git-flow не более чем серия удобных “сокращений” для переключения между этими ветками и перебрасывания изменений из одной в другую. После установки git-flow нужно настроить локальную копию:

git flow init

Вы можете согласиться со значениями по умолчанию, нажимая Enter – это, кроме всего прочего, облегчит настройку git-flow у сотрудников, т.к. им нужно будет использовать точно такие же значения. На самом деле все что, происходит при запуске init – это добавление двух секций [gitflow] в ваш .git/config:

[gitflow "branch"]
    master = master
    develop = develop
[gitflow "prefix"]
    feature = feature/
    release = release/
    hotfix = hotfix/
    support = support/
    versiontag = 

Если вам нужно что-то уточнить воспользуйтесь встроенным хелпом

git flow команда help

Приятным дополнением могут быть модули autocompletion для bash и для zsh

Работа над новой фичей

Для старта новой фичи, например feature 77 с вашего issue-tracker’а:

git flow feature start 77-speedup-yak-shaving

Команда создает новую ветку feature/77-speedup-yak-shaving с родителем develop и переключается на нее.

Нужно расшарить работу с другими?

git flow feature publish 77-speedup-yak-shaving

Это одним движением push’ит remote-ветку и привязывает локальную к ней. Стандартные git push и git pull –rebase работают как и должны, т.к. ветки, созданные git-flow, являются обычным ветками и не содержат какой-то специальной информации. Вся хитрость – только в соглашении именования.

Когда фича закончена, ее нужно за-rebase-ить на develop и потом слить:

git flow feature rebase
git flow feature finish 77-speedup-yak-shaving

После этих двух шагов develop будет содержать Вашу новую фичу. Остается только прогнать тесты и за-push-ить.

Выпуск релизов и хотфиксов

С релизами управляться очень легко:

git flow release start 2011_year_of_the_yak

Эта команда создает новую ветку release/2011_year_of_the_yak на основе develop. Здесь можно изменить HISTORY или VERSION файлы, закоммитить и выпустить релиз:

git flow release finish 2011_year_of_the_yak

После этого будет создан тег 2011_year_of_the_yak и временная ветка будет удалена. Вы очутитесь в master.

Хотфикс – это feature branch, базирующийся на последнем релизе и который автоматически будет влит и в master, и в develop. Просто и со вкусом.

Оригинал на английском
Модель, по которой работает git-flow: A successful Git branching model

  • http://object.io/site Laust Rud Jacobsen

    Thank you for the translation of my article!

  • vhbit

    You’re welcome :)