Шпаргалка по git-flow

создал Daniel Kummer

эффективное ветвление с помощью git-flow от Vincent Driessen

переводы: English - Castellano - Brazilian Portugues - 繁體中文(Traditional Chinese) - 简体中文(Simplified Chinese) - 日本語 - Türkçe - 한국어(Korean) - Français - Italiano - Русский (Russian) - Deutsch (German) - Català (Catalan) - Română (Romanian) - Ελληνικά (Greek) - Українська (Ukrainian) - Tiếng Việt (Vietnamese) - Polski

Введение

git-flow — это набор расширений git предоставляющий высокоуровневые операции над репозиторием для поддержки модели ветвления Vincent Driessen. узнать больше

★ ★ ★

Эта шпаргалка показывает основные способы использования операций git-flow.

★ ★ ★

Общие замечания

★ ★ ★

Установка

★ ★ ★

OSX

Homebrew
$ brew install git-flow-avh
Macports
$ port install git-flow-avh

Linux

$ apt-get install git-flow

Windows (Cygwin)

$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash

Вам потребуется wget и util-linux для установки git-flow.

Подробные инструкции по установке git flow смотрите на git flow wiki.

install git-flow

Приступая к работе

Git flow нужно инициализировать, чтобы настроить его для работы с вашим проектом.

★ ★ ★

Инициализация

Для начала использования git-flow проинициализируйте его внутри существующего git-репозитория:

git flow init

Вам придётся ответить на несколько вопросов о способах именования ваших веток.
Рекомендуется оставить значения по умолчанию.

Фичи

★ ★ ★

Начало новой фичи

Разработка новых фич начинается из ветки "develop".

Для начала разработки фичи выполните:

git flow feature start MYFEATURE

Это действие создаёт новую ветку фичи, основанную на ветке "develop", и переключается на неё.

Завершение фичи

Окончание разработки фичи. Это действие выполняется так:

  • Слияние ветки MYFEATURE в "develop"
  • Удаление ветки фичи
  • Переключение обратно на ветку "develop"
git flow feature finish MYFEATURE

Публикация фичи

Вы разрабатываете фичу совместно с коллегами?
Опубликуйте фичу на удалённом сервере, чтобы её могли использовать другие пользователи.

git flow feature publish MYFEATURE

Получение опубликованной фичи

Получение фичи, опубликованной другим пользователем.

git flow feature pull origin MYFEATURE

Вы можете отслеживать фичу в репозитории origin с помощью команды git flow feature track MYFEATURE

Создание релиза

★ ★ ★

Начало релиза

Для начала работы над релизом используйте команду git flow release Она создаёт ветку релиза, ответляя от ветки "develop".

git flow release start RELEASE [BASE]

При желании вы можете указать [BASE]-коммит в виде его хеша sha-1, чтобы начать релиз с него. Этот коммит должен принадлежать ветке "develop".

★ ★ ★

Желательно сразу публиковать ветку релиза после создания, чтобы позволить другим разработчиками выполнять коммиты в ветку релиза.           Это делается так же, как и при публикации фичи, с помощью команды:

git flow release publish RELEASE

Вы также можете отслеживать удалённый релиз с помощью команды
git flow release track RELEASE

Завершение релиза

Завершение релиза — один из самых больших шагов в git-ветвлени. При этом происходит несколько действий:

  • Ветка релиза сливается в ветку "master"
  • Релиз помечается тегом равным его имени
  • Ветка релиза сливается обратно в ветку "develop"
  • Ветка релиза удаляется
git flow release finish RELEASE

Не забудьте отправить изменения в тегах с помощью команды git push --tags

Исправления

★ ★ ★

git flow hotfix start

Как и в случае с другими командами git flow, работа над исправлением начинается так:

git flow hotfix start VERSION [BASENAME]

Аргумент VERSION определяет имя нового, исправленного релиза.

При желании можно указать BASENAME-коммит, от которого произойдёт ответвление.

Завершение исправления

Когда исправление готово, оно сливается обратно в ветки "develop" и "master". Кроме того, коммит в ветке "master" помечается тегом с версией исправления.

git flow hotfix finish VERSION

Команды

git-flow commands

Последние замечания

★ ★ ★

★ ★ ★

comments powered by Disqus