より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

GitHub flowとかGit flowってブランチ戦略について理解してなかった

職場でプロジェクトの説明をされた時に

Git flowではなくGitHub flow

みたいな説明されたのですが、Git flowとGItHub flowに違いがあるのか?となりました。

こうしたブランチ戦略に対して、あまり深く考えてなかったので、調べてみました

www.atmarkit.co.jp

nnhrsk.hatenablog.com

Git flowはdevelop,master,feature,release,hotfixと細かく役割を分けてブランチを切って管理します。

これに対してGitHub flowはシンプルで、masterとfeatureブランチだけです。

使い分けは?

techblog.housmart.co.jp

上記の記事は本当にdevelopブランチが必要なの?という切り出しから要件を考えて、ブランチ戦略を決めています。

Gitも最近になって主流になってますが、正直、そこまで考えてませんでした。

Source Tree使ってる慣れでGit flow一択でした。

f:id:rimever:20190512085234p:plain

記事で指摘されているように手元で動くかだけなので、実はずっとdevelopブランチのままでmasterブランチにマージしてないリポジトリがあったりします。

耳の痛い話でした。

プライベートで運用する程度であれば、わざわざブランチを切らなくて、直接コミットして行けばいいのです。

職場の同僚でも直接masterにブランチしてると言い合っていたのですが、わざわざブランチを切ってマージすればいいとは限らず、ありと言うことでしょう。

Googleの一部のリポジトリではそうしているようです。

f:id:rimever:20190512085513p:plain

といっても大幅な改造を行う時にはブランチを切って、やり直ししやすい状況をつくるべきです。

Source Treeからはプルリクエストしない

前職ではあまりPull Requestしたことがありませんでした。

Backlogでチケット管理していたので、そこからPull Requestです。

Source Treeから出来ないものか?と思ったのですが、やはりPull Requestは、GitLabなりBacklogから行った方が良さそうですね。

qiita.com

そのブランチ戦略、どう書くの?

で、それらの肝心のブランチ戦略ですが、私のように口伝だったら人数が少ないケースだったら、良いですが、書いてくれないと毎回説明しないとならないじゃんと。

どう記載すればいい?とGitHubを探ってみました。

exment/ReadMe.md at master · exceedone/exment · GitHubより

f:id:rimever:20190512090332p:plain

GitHub - hanami/hanami: The web, with simplicity.より

f:id:rimever:20190512090601p:plain