Help us understand the problem. What is going on with this article?

GitHub Flowのまとめ

概要

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

GitHub Flowとは?

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

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

https://gist.github.com/Gab-km/3705015

実際の流れ

概要

  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 作業用ブランチ名

参考

https://www.atmarkit.co.jp/ait/articles/1708/01/news015.html

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした