LoginSignup
4

More than 3 years have passed since last update.

GitHub Flowのまとめ

Last updated at Posted at 2020-02-13

概要

GitHub Flowを自分のメモ用にまとめました。

GitHub Flowとは?

GitHubの開発で使用されているワークフローのことです。次の6つのルールによって運用されています。

  1. masterブランチのものは何であれデプロイ可能である
  2. 新しい何かに取り組む際は、説明的な名前のブランチをmasterから作成する(例: new-oauth2-scopes)
  3. 作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容をpushする
  4. フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、 プルリクエスト を作成する
  5. 他の誰かがレビューをして機能にOKを出してくれたら、あなたはコードをmasterへマージすることができる
  6. マージをしてmasterへpushしたら、直ちにデプロイをする

実際の流れ

概要

  1. masterブランチから作業用ブランチを作成
  2. 作業用ブランチでコミットする
  3. 定期的に作業用ブランチをプッシュする
  4. GitHubでプルリクエストを送る
  5. masterブランチにマージ
  6. masterブランチをデプロイ

詳細

1.masterブランチから作業用ブランチを作成

現在のブランチがmasterブランチであることを確認する

ローカルリポジトリの現在いるブランチがmasterブランチであることを確認する。masterブランチじゃない場合は切り替える。また、masterブランチに変更がないかどうかも確認する。

// ブランチの一覧を表示する
$ git branch

// masterブランチに切り替える
$ git checkout master

// masterブランチの変更状況を確認する
$ git status

ローカルリポジトリのmasterブランチを最新の状態にする

ローカルリモートリポジトリのmasterブランチを最新の状態にするために、リモートリポジトリから情報を取得してマージする。

$ git pull origin master

※pullは現在いるブランチにマージされるため、pullするリモートリポジトリのブランチと、現在いるローカルのブランチを必ず合わせる。

作業用のブランチを作成する

ローカルリモートリポジトリのmasterから作業用のブランチを新たに作成する。ブランチの名前は、作業の内容を説明するようなわかりやすい名前にする。
例)user-content-cache-keyなど

$ git checkout -b 作業用ブランチ名

2.作業用ブランチでコミットする

新しいブランチで作業を行い、変更をステージングエリアに追加してコミットする。

// 変更をステージに追加する
$ git add .

// 変更を記録する
$ git commit -v

// ファイルの削除を記録する
$ git rm ファイル名
$ git rm -r ディレクトリ名

// ファイルの削除を記録する(ファイルは残す)
$ git rm --cached ファイル名

3.定期的に作業用ブランチをプッシュする

GitHub(リモートリポジトリ)に作業用ブランチを定期的にプッシュする。

git push origin 作業用ブランチ名

4.GitHubでプルリクエストを送る

GitHubでプルリクエストを送る。

【自分】
GitHubを開く
Pull rewuests → New pull request → compare:ブランチ名を選択 → Create pull request → タイトルなどを入力 → Create pull request → Reviewers → レビュワーを選択する

【レビューワー】
通知を受け取る
GitHubを開く
Pull requests → Files changed
・問題がある場合
コード上の+をクリック コメントなどを書く
・OKの場合
Review changes → Approve

5.masterブランチにマージ

コードレビューがOKだったら、masterブランチへ作業用ブランチをマージする。マージ後、作業用ブランチは削除する。

GitHubを開く
Conversation → Merge pull request → Confirm merge → Delete branch

ローカルリポジトリを最新の状態にする

ローカルリモートリポジトリのmasterブランチを最新の状態にするために、リモートリポジトリから情報を取得してマージする。ローカルリポジトリのマージ済みの作業用ブランチを削除する。

// masterブランチに切り替える
$ git checkout master

// リモートリポジトリから情報を取得してマージする
$ git pull origin master

// マージ済みの作業用ブランチを削除する
$ git branch -d 作業用ブランチ名

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4