git-flow入門


git-flow 入門

git-flowの入門記事です。

gitに関する説明はありません。

git-flowとは?

git-flowはGitを用いた開発を助けてくれるツールです。

git-flowを使うことで複雑になったブランチ管理を容易に管理することができるようになります。

git-flowはGitに標準搭載されておらず利用する場合はインストールをする必要があります。

インストール方法はこちらから
https://github.com/petervanderdoes/gitflow-avh/wiki/Installation

git-flowはVincent Driessenさんにより提唱された"A successful Git branching model"というブランチモデルをベースとしています。

git-flowのメリット

ー コマンド1つで複数の作業を行ってくれる。
ー 1からブランチのワークフローを設計する必要がなく、Git Flowのブランチワークフローに沿った開発を行うことができる。
ー あらかじめブランチの名前に意味がある。

これがgit-flowの良い点です。より詳しく説明します。

git-flowのコマンドについて

git-flowにはオリジナルのコマンドがあります。Gitコマンドでできることですが、Git コマンドの場合だと複数行う必要がありますがGit Flowでは1回でまとめて行うことができます。

git-flowの基本コマンドの流れ

git-flowの初期化

まず初期化を行います

git flow init

ここから各種設定を行います。

Branch name for production releases: [master] main

まずルートとなるブランチの名前を入力します今回はGitHubを利用することを前提とするのでブランチの名前はmainとします。

Branch name for "next release" development: [develop]

つぎに開発用ブランチの名前を設定します。開発用ブランチはgit-flowにおいて一番利用されるブランチとなるためわかりやすい名前にしましょう。

今回はデフォルトのdevelopとします。

How to name your supporting branch prefixes?
Feature branches? [feature/] 

作業を行うブランチの名前を決定します。新規の機能や修正を行う場合に利用するブランチです。

例) ログイン機能を作成するときはfeature/loginとなります。

Release branches? [release/] 

リリースを行うブランチの名前を決定します。開発が進みリリースをする際に利用するブランチです。

Hotfix branches? [hotfix/] 

リリースをした後に障害や不具合を修正するブランチの名前を決定します。

Support branches? [support/]

サポートを行うためのブランチの名前を決定します。

Version tag prefix? []

バージョンを指定します。

以上でgit-flowの初期設定は完了しました!これでgit-flowを使うことができます。

git-flowを使った実践開発

git-flowの開発用ブランチはdevelop branchから開発を始めます。

開発開始コマンド

git flow feature start { 開発する内容について記述する }

これにより開発を行うブランチが作成されます。

開発終了コマンド

git flow feature finish { 開発する内容について記述する }

上記コマンドを実行することで、開発で使っていたブランチを終了させることができます。

releaseとhotfixについて

申し訳ありません。releasehotfixに関しては使用したことがありません。

もしreleaseとhotfixを利用した人は下記の記事を参考にしてください。

こちらの記事はgit-flowのコマンドについてまとめたもので手軽によむことができて、内容もとても充実しています。

git-flowのデメリットについて

こちらの記事がとてもわかりやすいです。

git-flowのようにブランチのワークモデルがあらかじめ定義されているのはとても便利のように思えますが、git-flowは冒頭に登場した画像からわかるように複雑なブランチワークフローです。

最後に

私としてはgit-flowをとても気に入ってます。導入も容易なのでまずは気軽に使ってみてください!