GitHub Flowとは?GitHubを利用した開発フローを覚えよう!


こんにちは。Tomoyuki(@tomoyuki65)です。

 

GitHubは使い始めたけど、イマイチ使い方がよくわからない!

 

って方もいるのではないでしょうか?

現役で開発している方じゃないと、なかなか使い方を理解しづらいですよね。

この記事では、そんなGitHubを利用した開発方法について解説します。

 



Forkをする開発フロー

OSSの開発などでGitHubを利用する場合、次のような手順で開発を行います。

  1.  GitHub上でForkする
  2.  Forkしたリポジトリを自分の環境にcloneする
  3.  cloneしたリポジトリからブランチを作成する
  4.  ブランチに対してコードを変更し、コミットする
  5.  ブランチをForkしたリポジトリにpushする
  6.  GitHubでFork元のリポジトリに対してPull Requestを作成して送る

 

不特定多数の人にコミット権限を付与できないパブリックなソフトウェア開発では、この方法によってリポジトリに意図しないコミットを防ぐことができます。

ただし、社内開発などのクローズドな環境では、Forkをする開発フローは少々複雑です。

そういった場合は、GitHub FlowのようにForkをしないフローで開発を行います。

それにより、開発者一人あたりが把握するリポジトリが少ないため、シンプルなワークフローとなります。

 

GitHub Flowとは?

GitHub Flow(ギットハブ フロー)とは、GitHub社が実践しているとてもシンプルな開発フローです。

次のような手順で開発を行います。

  1.  masterブランチは常にデプロイ(ソースコードを本番環境にリリースさせること)できる状態とする
  2.  masterブランチを自分の環境にcloneする
  3.  自分の環境でトピックブランチを作成し、ブランチにはその特質を表す名前を付ける
  4.  トピックブランチに対してコードを変更し、コミットする
  5.  トピックブランチを定期的にpushし、GitHubリポジトリにブランチを作成する
  6.  助けやフィードバックが欲しい場合、そしてレビュー依頼をする場合はPull Requestを作成し、Pull Requestでやり取りする
  7.  他の開発者がレビューし、作業終了を確認後にmasterブランチにマージする
  8.  masterブランチへマージしたら、ただちにデプロイする

 

尚、GitHub Flowでは1日に何度もデプロイする想定のため、デプロイツールを使用し、デプロイするための作業が完全に自動化されている必要があることを覚えておきましょう。

 



GitHub Flowを実践してみよう

では実際にGitHub Flowを実践してみましょう。

今回はGitHubとは?GitHubの使い方を解説!で作成したリポジトリを使用し、一人でGitHub Flowを実践する方法を解説します。

 

トピックブランチを作成

まずトピックブランチを作成します。

今回は例として「README.md」ファイルにコメントを追記するため、ブランチ名を「add-comment」とします。

では以下のコマンドを実行してみて下さい。

$ git checkout -b add-comment

 

トピックブランチに対してコード変更、コミット

現在のブランチが「add-comment」であることを確認し、「README.md」ファイルにコメント「GitHub Flowの実践のため追記」を追記しましょう。

 

テキストエディタで「README.md」を開き、2行目にコメントを追加して下さい。

 

そして以下コマンドを順に実行し、コミットします。

$ git add README.md

$ git commit -m "コメント追加"

 

トピックブランチをpush

コミット完了後、トピックブランチをpushし、GitHubに反映します。

以下のコマンドを実行してみて下さい。

$ git push origin add-comment

 

pushしたブランチの内容がGitHubに反映されます。

 

Pull Requestを作成

ではブランチについてPull Requestを作成してみましょう。

 

「Compare & pull request」をクリックします。

 

タイトルと内容を記載し、「Create pull request」をクリックします。

 

レビュー

通常は他の人がPull Requestについてレビューします。

今回は一人しかいないので、自分でやってみましょう。

 

「Files changed」タブをクリックします。

 

変更内容をレビューします。

 

レビュー完了後、タブ「Conversation」をクリックして最初の画面に戻りましょう。

コメント記載後、「Comment」をクリックします。

 

masterブランチにマージ

レビューで問題なければ、masterブランチにマージします。

 

「Merge pull request」をクリックします。

 

「Confirm merge」をクリックし、マージが完了です。

 

ブランチの削除

masterブランチへのマージが完了したらブランチを削除しましょう。

 

「Delete branch」をクリックします。

 

ブランチが削除されます。

 

以下のコマンドを順に実行し、自分の環境のブランチも削除します。

$ git checkout master

$ git branch -D add-comment

 

ローカルのmasterブランチを更新

ここまででGitHubのmasterブランチは更新されましたが、ローカルのmasterブランチに更新内容が反映されていません。

そこで、pullコマンドでローカルのmasterブランチを更新します。

以下のコマンドを実行してみて下さい。

$ git pull origin master

 

ローカルにあるファイルが更新されていればOKです。

 

まとめ

  •  OSSの開発などでGitHubを利用する場合、Forkする開発フローで行うことで、リポジトリに意図しないコミットを防ぐことができる
  •  社内開発などのクローズドな環境では、GitHub FlowなどForkしないシンプルな開発フローで行う。
  •  GitHub Flow(ギットハブ フロー)とは、GitHub社が実践しているとてもシンプルな開発フローのこと
  •  GitHub Flowでは1日に何度もデプロイする想定のため、デプロイは完全に自動化されているべきである

 

今回はGitHub Flowについて解説しました。

実際にGitHubを使ってみると、開発フローの理解が深まりますね!

チームやプロジェクトによって、開発方法が変わることがあるので、まずは基本的なGitHub Flowについて理解しておきましょう。

 

もっと詳しく知りたい方は、私も参考にしているコチラの本もオススメです。

 

尚、GitやGitHubについてよくわからない!

って方がいたら、コチラの記事を参考にしてみて下さい。

Gitとは?MacでGitを使う方法を解説!

2017年10月11日

GitHubとは?GitHubの使い方を解説!

2017年10月13日

 

The following two tabs change content below.

Tomoyuki

SEを5年経験後、全くの未経験ながら思い切ってブロガーに転身し、月間13万PVを達成。その後コロナの影響も受け、以前から興味があったWeb系エンジニアへのキャリアチェンジを決意。現在はWeb系エンジニアとして働きながら、プロゲーマーとしても活躍できるように活動中。








シェアはこちらから


おすすめのゲーミングPCまとめ

近年、eスポーツという言葉が浸透し、ゲーミングPCの需要も増えましたが、「ゲーミングPCはどう選べばいいの?」という人も多いのではないでしょうか。そんなPC初心者でも迷わず選べるよう、おすすめのゲーミングPCをご紹介します!


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です