2020-08-01 Git-flowを入れて使ってみた
2020/08/01
Git学習中にdevelopブランチを追加するところまではやっていたのですが、ブランチの運用ルールをいい感じにまとめてくれているGit-flowというものを入れてみました。
今回は、git-flowの導入とdevelopからさらに派生するfeatureブランチを作って開発したものをマージする練習までやっています。
主に以下の記事を参考にしました!
- Git-flowって何? - Qiita
- 図とコマンドで分かる! git-flowによる開発の流れと使い方 (1/2):Gitブランチを使いこなすgit-flow/GitHub Flow入門(3) - @IT
- Git-flow ~Gitのブランチモデルを知る~ | バージョン管理システム入門(初心者向け)
なお、ローカルリポジトリの準備は既にしていたので今回割愛しています。
Git-flowのセットアップ
今学習で使っているAWS EC2のCentOS7インスタンスに入れたかったので、CentOSに入れる場合の方法をググって以下を参考にインストール。
CentOS7にgitflowを入れる - 魔法使いの卵
sudo curl -OL https://raw.githubusercontent.com/nvie/gitflow/develop/contrib/gitflow-installer.sh
sudo bash gitflow-installer.sh
git-flowを入れることができたらまず初期化を行う。
git flow init
ブランチの名前をどうするか色々聞かれるが、デフォルトで良かったのでエンターを押して進めていく。これで導入は完了!
featureブランチを切ってdevelopに反映するまで
早速ブランチを作ってマージするところまでやってみる。
featureは機能ごとの開発に使うブランチ。developから分岐していて、開発したらdevelopにマージしていく。(developは、開発した機能たちを取りまとめてmasterに反映させるんですね!)
まずはstartコマンドでローカルに新しくブランチを作成する。
git flow feature start 20200801/test
git branch // 「20200801/test」が指定されていればok
作ったブランチを今度はリモート(GitHub)に反映させるためにpublishコマンド。
git flow feature publish 20200801/test
GitHubを確認して新しくブランチが追加されていたらok!!
開発作業開始時にコンフリクトを避けるためにリモートリポジトリの最新データをpullする。
git flow feature pull origin 20200801/test
ここから開発作業。今回は試しにREADME.mdを更新してみる。
sudo vi README.md
中身を更新したら変更を追加&コミットする。
git commit -am "change README"
-aコマンドってなんだと思ったら、addとcommitを同時に実行できるらしい!便利!
コミットができたらpushする。
git push origin feature/20200801/test
これでリモートリポジトリにローカルのデータを上げることができる。
GitHubをみたらpushされているのを確認することができました!
最後にブランチの作業を終了する。
git flow feature finish 20200801/test
featureブランチを終了するとコミット内容はdevelopブランチにマージされる。
ちなみにfinishコマンドを打った時のログは以下。
Switched to branch 'develop'
Updating ab75ec1..a962273
Fast-forward
README.md | 80 +-------------------------------------------------------------------------
1 file changed, 1 insertion(+), 79 deletions(-)
Deleted branch feature/20200801/test (was a962273).
Summary of actions:
- The feature branch 'feature/20200801/test' was merged into 'develop'
- Feature branch 'feature/20200801/test' has been removed
- You are now on branch 'develop'
feature/20200801/testブランチは無事developにマージ&用済みになったので削除され、developブランチに戻ってきた。
まとめ
今回のfeatureブランチを作ってマージするまでの流れは以下。
1.ブランチを作成〜ローカルの状態の最新化
git flow feature start ブランチ名
git flow feature publish ブランチ名
git flow feature pull
2.実際に開発する
(今回はREADME.mdの中身を更新)
3.add,commit,pushを行い、開発完了後にブランチを削除&developにマージ
git commit -am "コメント"
git push origin ブランチ名
git flow feature finish ブランチ名
次に学習すること
コミット履歴を後から見やすくするためのrebaseコマンドというものがあるらしい。
理解して使いたい。
初心者でもわかる!リベースの使い方を解説します | 株式会社LIG
今回は変更をすぐに反映したが、チーム開発だとプルリクを作成して他の人が内容に問題がないかコードレビューして、okならマージする流れになる。この辺りも要確認。
プルリクエストとは?|サル先生のGit入門【プロジェクト管理ツールBacklog】
気づきなど
これまではGithubの個人アカウントでは全部masterにpushドーン!っとやっていたので、ブランチ運用に慣れていきます!!