[Перевод] Усовершенствуйте свой 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

Comments