miyupaca log

2020-08-01 Git-flowを入れて使ってみた

2020/08/01

Git学習中にdevelopブランチを追加するところまではやっていたのですが、ブランチの運用ルールをいい感じにまとめてくれているGit-flowというものを入れてみました。
今回は、git-flowの導入とdevelopからさらに派生するfeatureブランチを作って開発したものをマージする練習までやっています。
主に以下の記事を参考にしました!

なお、ローカルリポジトリの準備は既にしていたので今回割愛しています。

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ドーン!っとやっていたので、ブランチ運用に慣れていきます!!


miyupaca

miyupacaの学習記録ブログです。