Как установить git flow windows

2 Answers

answered Sep 18, 2015 at 20:16

sschuberth's user avatar

sschuberthsschuberth

28.6k6 gold badges102 silver badges147 bronze badges

4

  • How do you know it’s based on AVH edition? I couldn’t find any info in the repo about this…

    Sep 25, 2018 at 16:01

  • yeah, I just figured git flow version shows it too: 1.11.0 (AVH Edition)

    Sep 25, 2018 at 16:37

  • is it fork with git-flow implemetation too?

    Jul 22, 2022 at 12:39

If you have Sourcetree OR if you install Sourcetree, you can find GitFlow options there. This is one of the easiest way to use GitFlow.

enter image description here

Once you active GitFlow from their (shown in the above screenshot), you can use all GitFlow commands from the terminal as well.

answered May 6, 2019 at 6:12

Arif's user avatar

ArifArif

6,1224 gold badges51 silver badges81 bronze badges

2 Answers

answered Sep 18, 2015 at 20:16

sschuberth's user avatar

sschuberthsschuberth

28.6k6 gold badges102 silver badges147 bronze badges

4

  • How do you know it’s based on AVH edition? I couldn’t find any info in the repo about this…

    Sep 25, 2018 at 16:01

  • yeah, I just figured git flow version shows it too: 1.11.0 (AVH Edition)

    Sep 25, 2018 at 16:37

  • is it fork with git-flow implemetation too?

    Jul 22, 2022 at 12:39

If you have Sourcetree OR if you install Sourcetree, you can find GitFlow options there. This is one of the easiest way to use GitFlow.

enter image description here

Once you active GitFlow from their (shown in the above screenshot), you can use all GitFlow commands from the terminal as well.

answered May 6, 2019 at 6:12

Arif's user avatar

ArifArif

6,1224 gold badges51 silver badges81 bronze badges

Download and install Git from MSysGit or Git SCM.
Download and install getopt.exe from the util-linux package into C:\Program Files\Git\bin. (Only getopt.exe, the others util-linux files are not used). Also install libintl3.dll and libiconv2.dll from the Dependencies packages (libintl and libiconv), into the same directory.

Suppose that Git is installed in the folder c:\bin\git and GnuWin32 in the folder c:\bin\GnuWin32.

Clone the git-flow sources from GitHub:

$ git clone --recursive git://github.com/nvie/gitflow.git

Run the msysgit-install script from a command-line prompt (you may have to
run it with «Full Administrator» rights if you installed msysgit with its
installer, and ensure you’re running from a Windows command prompt, not MINGW):

cd gitflow
cp c:\bin\GnuWin32\bin\getopt.exe c:\bin\git\bin\getopt.exe
cp c:\bin\GnuWin32\bin\libintl3.dll c:\bin\git\bin\libintl3.dll
cp c:\bin\GnuWin32\bin\libiconv2.dll c:\bin\git\bin\libiconv2.dll
contrib\msysgit-install.cmd c:\bin\git

In Git bash create a symbolic link for git-flow so that you can actually use the $ git flow command from any location.

ln -s /C/gitflow/git-flow git-flow

Введение

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

★ ★ ★

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

★ ★ ★

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

  • Git flow предоставляет превосходную командную строку со справкой и улучшенными выводом. Внимательно читайте его, чтобы знать, что происходит…
  • Клиент для macOS/Windows Sourcetree — отличный GUI для Git — также поддерживает git-flow
  • Git-flow основан на слиянии. Для слияния веток фич не используется rebase.

★ ★ ★

Установка

  • В первую очередь вам нужна рабочая установка git
  • Git flow работает на macOS, Linux и Windows

★ ★ ★

macOS

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

Исправления

  • Исправления нужны в том случае, когда нужно незамедлительно устранить нежелательное состояние продакшн-версии продукта
  • Может ответвляться от соответствующего тега на ветке «master», который отмечает выпуск продакшн-версии

★ ★ ★

git flow hotfix start

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

git flow hotfix start VERSION [BASENAME]

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

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

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

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

git flow hotfix finish VERSION

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

★ ★ ★

  • Здесь описаны не все доступные команды, только наиболее важные
  • Вы можете продолжать использовать git и все его команды, как обычно, git flow — это просто набор дополнительных инструментов
  • Возможности «support»-веток пока в beta-версии, использовать их не рекомендуется

★ ★ ★

В общем-то история будет о том, на что стоит обратить внимание, когда решился использовать git-репозиторий, как его удобно приготовить и зачем нужны все эти плюшки.

Взгляд разработчика, который бился головой, потом снова бился головой, потом придумал как круто не биться головой, а потом посмотрел то, что люди давно придумали, чтобы не биться головой, и в общем-то оказалось пришли мы к одному и тому же.

В качестве исторической справки отмечу, что git это распределенная система управления версиями, а была она изначально создана ни кем иным, как самим Линусом Торвальдсом (по ссылке можно посмотреть как старина Торвальдс фигачит код в ядро, как видно понедельники самые продуктивные дни Линуса) с целью управления разработкой ядра Linux и произошло это в уже не близком 2005 году.

Хватит лирики

В общем-то давайте к практике.

.gitignore

Git по умолчанию пытается отслеживать все файлы появляющиеся в папке (и подпапках) репозитория. Очевидно, что нет никакого смысла складывать в Git библиотеки, которые вероятно вы подтягиваете каким-нибудь менеджером пакетов или например всяческие obj, bin и прочие директории и файлы которые внезапно возникают вокруг вашего кода, но для самого кода ценности никакой не несут.

Именно для таких файлов существует такая штука как .gitignore, позволяющая объяснить git’у, что именно не нужно отслеживать. И, например, ваши Gui сразу же перестанут предлагать вам включить ненужные файлы в индекс, если вы пользуетесь не чистой консолью.

Типичные файлы .gitignore в зависимости от языка или среды разработки вы сможете найти на GitHub в соответствующем проекте.

Git Flow

«Си» позволяет очень просто выстрелить себе в ногу. На «Си++» сделать это сложнее, но, когда вам это удается, ногу отрывает полностью.

Bjarne Stroustrup

Фраза отца С++ в мире разработки характеризует многое. Собственно git это такая штука, которой стрелять в ногу можно  бесконечно огромным количеством способом, зависящим в основном от вашей фантазии и психических отклонений.

Но умные люди в принципе уже придумали и описали наиболее типичные и простые в использовании с точки зрения владения кодом и управления способы.

Если кратко, то зовется это все Git Flow, и описано множество раз на просторах безграничного интернета.

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

Установка Git flow

Для начала нужно иметь установленный git;

Если с Git все хорошо, то в зависимости от используемой операционной системы можно использовать следующие способы установить git flow.

OS X — Homebrew
$ brew install git-flow
OS X — Macports
$ port install git-flow

Linux

$ apt-get install git-flow
Windows

Все сложно

Windows SourceTree

Данный клиент поддерживает Git Flow и позволяет весьма просто управлять им из Gui-интерфейса «из коробки».

Начало работы

Для начала git flow необходимо инициализировать, настроить его для работы с конкретным проектом, причем это нужно объяснить вашему локальному git, поэтому подобные махинации необходимо повторить на каждой машине разработчика (поправьте меня, если я не прав).

В общем для инициализации нужно использовать команду

git flow init

В случае использования SourceTree все можно сделать из интерфейса (больше не буду отдельно упоминать SourceTree, по ссылке все достаточно подробно и полно).

Feature

Как правило ветки Feature нужны только в репозиториях разработчиков, в них ведется разработка новшеств для последующих релизов.

Ветка типа Feature создается из основной ветки разработки (по умолчанию develop).

git flow feature start featurename

В наименовании фичи можно исходить из потребностей конкретно вашего процесса разработки. Может быть вам будет удобно использовать какой-нибудь идентификатор пользовательской истории из вашего трекера, а может краткое текстовое название. В итоге вы получите такую ветку feature/featurename.

Когда работа над фичей завершена, результаты труда необходимо вернуть в исходную ветку разработки. По сути нужно выполнить следующие действия:

  • Выполнить слияние ветки фичи в ветку разработки (feature/featurename в develop в моем примере).
  • Переключиться обратно в ветку разработки.
  • Удалить ветки фичи.
git flow feature finish featurename

Если работа над фичей идет совместно с коллегами — опубликуйте ёё на удаленном севере.

git glow feature publish featurename

Соответственно чтобы получить кем-то опубликованную фичу необходимо выполнить

git flow feature pull origin featurename

Можно отслеживать фичу в репозитории origin выполнив

git flow feature track featurename

Release

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

Для начала релиза

git flow release
git flow release start RELEASE [BASE]

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

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

git flow release publish RELEASE

И так же по аналогии для отслеживания нужно использовать

git flow release track RELEASE

Завершение релиза один из наиболее сложных и важных шагов всего процесса ветвления в ходе которого происходят следующие действия:

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

Чтобы опубликовать тэги

git push --tags

Исправления

Исправления нам необходимы в том случае, когда требуется срочное изменение состояния продакшн-версии разрабатываемого продукта. Как вы понимаете она у нас находится в ветке master и помечена тэгом версии, соответственно мы ветвим hotfix от тега на ветке мастер.

git flow hotfix start VERSION [BASENAME]

Version — определяет имя нового исправленного релиза.

[Basename] — не обязательный аргумент, указывающий на коммит, от которого произойдет ветвление.

Завершение исправления выглядит так:

git flow hotfix finish VERSION

В этот момент оно сливается в ветки develop и master, коммит в ветке master помечается тегом с версией исправления.

Резюме

Выше приведены не все возможности и не все команды git-flow, кроме того использовать git со всеми его командами возможно и далее, т.к. git flow это просто набор инструментов упрощающих ветвление.

На самом деле самое важное с фундаментальной точки зрения описано в самой модели ветвления, принципы которой можно использовать и не прибегая к помощи git-flow.

git-model

Думаю в ближайшее время подготовлю перевод этой статьи.

Если Вы нашли ошибку, пожалуйcта выделите ее и нажмите Shift + E или нажмите здесь чтобы информировать меня. Спасибо.

  • Как установить grub4dos на windows 10
  • Как установить figma на компьютер windows 10
  • Как установить eclipse на windows 10
  • Как установить git clone на windows
  • Как установить doxygen на windows