skillup

技術ブログ

Git

git flowについて

投稿日:2019年5月28日 更新日:

最近、現場で少し使うようになったgit flowに関して。

gitでbranchを切って開発をする場合、

  1. git branch ブランチ名でブランチ作る
  2. なんらかの開発
  3. 開発が終わったらgit merge

とやることが一般的でした。

ブランチを恒常的に分けて使う場合は、基本的にこの方法で問題ないと思います。

ただdeveopブランチがあり、特定の機能をつけたい場合など、developでそのままやっていると他の方との開発と干渉してしまう可能性があります。

そこで、特定の機能などがある場合、git flowを使うと上記の流れがスムーズになります。

git flowとは

git flowを使うと特定機能の改修時にfeatureブランチという一時的なブランチを作成します。

これにより

  1. git flowを使ってfeatureブランチ作成(feature/フューチャーブランチ名)
  2. なんらかの開発
  3. developブランチ,masterブランチにマージ
  4. featureブランチはもう終わったので、削除

という流れができます。

参考URL

Gitのdevelopでの作業について

実際のコマンド

前提条件として、masterとdevelopブランチが存在していること

git flowのインストール
(gitの標準機能ではなくて、プラグインをインストールする必要があるようです。)

git flowの登録

git flowを使う場合、下記のコマンドで登録的な処理をすることが必要なようです。

この操作はブランチにつき、1回のようです。

master,developに当たるブランチの登録などが対話形式で進んでいきます。

例えばdevelopに相当するブランチをdevにしたいなどは変更ができるようです。

特定機能のためのfeatureブランチを作成

実際にfeatureブランチを作成します。

実際の開発

通常のgit add ,git commit,git pushなど。

ちなみに複数人で特定の機能を開発したい場合、当然他人のブランチを取り入れる必要があるので、
git flow feature pull feature kinou1
と打つと自分のローカルにブランチを持ってこれるようです。(通常のfetchでも問題ないようですが・・)

マージ作業

通常通りgit mergeをしてもいいですが、
git flow feature finish kinou1
というコマンドを使いますと自動的にmergeされ、かつfeatureブランチは寿命がきたので、削除されるようです。リモートへはgit branch --delete origin feature/kinou1とうって削除しておいた方が良いでしょう。

成功すると下記のようなメッセージが出ます。

本来はdevelopブランチをさらにリリースする前に分岐させ、masterにあてるためのreleaseブランチというのもあるようです。(リンク参照)

参考リンク

git flow cheetsheet

またバグ修正などはちょっと流れが違いますが、同じタイプのブランチとしてhot-fixというブランチもあるようです。

-Git
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Gitについて基本頻出系

Gitでよく使うコマンドのまとめなんぞを。 Contents1 リポジトリ作成&基本設定2 リポジトリ取り込み系3 インデックス登録→コミット→リモート登録→プッシュ4 変更戻し系(基本的に中 …

no image

Gitで統合 merge関連

本日はずっとブランチ間の統合を行っておりました。 たとえばhogeブランチとfooブランチの統合をする場合、差分を最初に確認すると思いますが、 [crayon-5df6384b4144a3785410 …

no image

Gitデタッチ、インデックス、プッシュなど

まとまってませんが、Gitであったトラブルについてのメモです。 Contents1 デタッチ状態2 インデックス一覧&削除2.1 インデックスの一覧2.2 インデックスから取り除くとき3 git pu …

no image

追跡ブランチからローカルブランチを作る方法~ (svn→gitの移行など)

SVNで運用されていたプロジェクトをgitに移行する機会があったのでその時のメモなどを。 思ってたよりは楽だったかな・・・ Contents1 準備2 実際の移行(git svn clone)3 gi …

no image

最新版のgitをソースから&git diffおさらい

Contents1 gitをソースから2 git diff gitをソースから gitはyumから入れてもいいんですが、バージョンが古かったりすると機能がいろいろと制限されるなどのデメリットもあります …