skillup

技術ブログ

Git

git flowについて

投稿日:

最近、現場で少し使うようになった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  finish feature kinou1
というコマンドを使いますと自動的にmergeされ、かつfeatureブランチは寿命がきたので、削除されるようです。リモートへはgit branch --delete origin feature/kinou1とうって削除しておいた方が良いでしょう。

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

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

参考リンク

git flow cheetsheet

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

-Git
-

執筆者:


comment

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

関連記事

no image

Git→Jenkinsの連携

気がついたら投稿数が50超えてましたね。 ガチンコ塾とあわせて更新してますが、2ヶ月ちょいなので結構いいペースで更新しているかと思います。 大切なのはこれを継続できるかですね。ただ、ガチンコ塾に比べる …

no image

git別リポジトリからの差分取りこみ、リモートの別ブランチ反映、強引なstash

gitについて最近覚えたことなど Contents1 別リポジトリからの差分取り込み2 別ブランチからファイルのみ取り込み3 追跡ブランチをローカルに取り込みたいとき4 強引なgit stash 別リ …

no image

gitのfetch/merge/rebaseについて その2

以前、gitのfetch/mergeについての記事を書きましたが、理論的なことは書いてあっても実際に処理の流れをかいていなかったので、今回はそのことについてメモリます。 Contents1 競合が起き …

no image

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

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

no image

gulpに関して

gulpに関しての復習と色々と間違っていたところもあるのでまとめ。 ちなみに以前書いた記事は下記 gulpインストールとタスクの実行 Contents1 インストール2 タスクの実行3 npxコマンド …