#概要
GitHub Flowを自分のメモ用にまとめました。
#GitHub Flowとは?
GitHubの開発で使用されているワークフローのことです。次の6つのルールによって運用されています。
- masterブランチのものは何であれデプロイ可能である
- 新しい何かに取り組む際は、説明的な名前のブランチをmasterから作成する(例: new-oauth2-scopes)
- 作成したブランチにローカルでコミットし、サーバー上の同じ名前のブランチにも定期的に作業内容をpushする
- フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、 プルリクエスト を作成する
- 他の誰かがレビューをして機能にOKを出してくれたら、あなたはコードをmasterへマージすることができる
- マージをしてmasterへpushしたら、直ちにデプロイをする
#実際の流れ
##概要
- masterブランチから作業用ブランチを作成
- 作業用ブランチでコミットする
- 定期的に作業用ブランチをプッシュする
- GitHubでプルリクエストを送る
- masterブランチにマージ
- 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 作業用ブランチ名
#参考
https://www.atmarkit.co.jp/ait/articles/1708/01/news015.html