今回は開発現場でよく使われる、Gitの開発手法についてまとめてみました!
コマンドベースで説明しているので手を動かしながら覚えることができるかと思います。おさらいを踏まえてgit-flowについてみていってください!
これを見ればある程度の大枠は理解できるでしょう!
では!
Table of Contents
git-flowとは
git-flowとは開発手法です。
ブランチをうまく活用したgitの開発方法となっています。
チーム開発の現場ではよくつかわれる手法の一つなのではないでしょうか?
そんなgit-flowについてコマンドを使いながら説明していきましょう!
今回はこちらのチートシートを参考に説明もしていきますね。
git-flow cheatsheet
git-flowで使われるブランチ
git-flowで利用されるブランチは以下です。
- mainブランチ
- developブランチ
- featureブランチ
- releaseブランチ
- hotfixesブランチ
- supportブランチ
以上6つのブランチがあります!では、説明していきますね。
mainブランチ
リリースのタイミングだけコミットするブランチです。日々の開発作業に置いて、mainブランチを触ることは基本的にありません。
mainブランチのHEADに直近のリリースソースコードがある状態にします。
とにかく先頭には直近でリリースされたコードがあるていうことですかね。
developブランチ
mainを親として作成する開発ブランチです。
最新の変更を反映するためのブランチで、常に最新の状態に更新しておきましょう。
featureブランチ
developブランチを親として作成していきます。特定の機能を作成する際にブランチを切ります。
特定の機能の実装が完了すると、developブランチにマージします。
releaseブランチ
mainブランチに取り込む一番直前のブランチです。
リリース直前のブランチになっています。完了したら、main,developブランチにマージしないといけない。
hotfixesブランチ
リリース済みのコードにバグが発生した時に修正する場所となっています。
mainブランチが親となっていて、修正が完了するとmain,develop両方のブランチにマージします。
開発に参加する
今回は既存の開発案件に参加していく前提で進めていきます。
リモートリポジトリはGitHubを想定していきますね!
開発を始める前に
初めにgit-flowをインストールしましょう。
インストール方法は以下より確認できます。
特定の機能を作ってリモートにpushするまで
参考YouTube
https://youtu.be/BYrt6luynCI
//リモートリポジトリからローカルリポジトリを作成
git clone {リポジトリのURL.git}
//ローカルリポジトリに移動して初期化
cd {ローカルリポジトリ名}
git flow init
//featureブランチを作成してfeatureブランチに移動(コマンドを叩くと自動で移動します。)
git flow feature start {feature名}
//かくかくしかじか、追加機能のコードを書いていく。
...
...
...
//追加機能をcommitする!
git add .
git commit -m "コミットメッセージ"
//リモートにpushする ※GitHubにはfeature/{feature名}ブランチが追加されることを確認
git push --set-upstream origin feature/{feature名}
//機能追加が終わるとfinishする
//自動的にdevブランチにマージされる。
//ローカルとリモートリポジトリのfeatureはどちらも削除されるので注意
git flow feature finish
//developブランチをリモートリポジトリにpushする。
git push --set-upstream origin develop
Code language: JavaScript (javascript)
mainブランチにリリースするまで
//tagを確認してみる。(初めは何もないはず
git tag -l
//リリースするバージョンを入力(今回は例として1.0.0)
git flow release start 1.0.0
//現在のブランチを確認 release/1.0.0←現在のブランチになっているはず。
git branch -a
//リリースブランチでの作業を行う。
//CHANGELOG.md,README.mdとかの編集
...
...
...
//コミット!
git add .
git commit -m "コミットメッセージ"
//releaseの終了 (1.0.0のところには対応するバージョンを入力してください。)
//以下コマンドを入力すると、mainブランチにマージされる。
git flow release finish 1.0.0
//リモートリポジトリにpushする。
git checkout main
git push origin --all --follow-tags
--all すべてのブランチをpushする。(devとmainにマージしないといけないから)
--follow-tags タグもpushする。
Code language: JavaScript (javascript)
これでリリースまで完了しました!
大枠のコマンドは使えるようになったのではないでしょうか!!
まとめ
個人的にはfeatureのpushまではある程度理解していたのですが、release等の使い方を知れてよかったです。
また詳しいコマンドの使い方も紹介していきたいです。
こちらも参考になるかと思います↓