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 resetの用法)

使用ケースでGitコマンドを復習してみようかなと思いました。 主にgit resetの用法整理ですが・・・ Contents1 ローカルを間違ってaddしてしまい、インデックスへの変更を取り除きたい2 …

no image

GitLabのCI/CD

GitLabをGitHubがわりに使っているプロジェクトがあったのですが色々調べているうちにCI/CD的な使い方ができるといことで調査することに。 jenkinsでやったようなCI/CDができます。お …

no image

git tag

あまり普段から使ってこなかったgit tagについて。 使う用途ですが主にリリースポイントについて印として使います。 通常のタグの付与

no image

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

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

no image

Gitで統合 merge関連

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

アーカイブ