Contents
GitHub Flowの流れ
GitHubFlowのルール
✅ masterブランチは常にデプロイ可能な状態を保ち、リリース用ブランチとする
✅ 新開発はmasterブランチから新しいブランチを作成し、そこで作業やコミットを行う
✅ 定期的にPushする
✅ ブランチ上の内容を変更をしたらmasterブランチにマージするために、Pull Requestを作成する
✅ 必ず他の開発者からレビューを受ける
✅ masterブランチにマージしたらすぐ本番サーバーにデプロイする(←テストとデプロイ作業は自動化)
GitHubを使ったワークフロー
- mainブランチから説明的な名前のブランチを作成する($ git brach <ブランチ名>)
- ファイルを変更しcommitする
- 同名のブランチをGitHubへPushする
- Pull Requestを作成し開発メンバーに送信する
- コードを修正
- Pull requestブランチをGitHubのmasterブランチにmergeする
- テスト環境にデプロイ&テスト
- 本番環境にデプロイ
プルリクエストの流れ
✅ プルリクエスト自分の変更したコードをリポジトリに取り込んでもらうよう依頼する機能
✅ 誰かが変更したコードを取り込む前にレビュー(コードの変更内容を確認してもらうことでバグ発生やコードの質低下を防ぐ)を挟むために実施する
プルリクエストの手順
- ローカルリポジトリのmasterブランチを最新の状態にする
- 新たにブランチを作成しファイルを変更し、変更をローカルリポジトリにcommitする
- 同名のブランチをGitHubへ Pushする
- プルリクエストを送る
- 開発メンバーがコードレビューを実施する
- プルリクエストをGitHubのmasterブランチにmergeする
実際の手順
上記のプルリクエストを模擬して、実際にワークツリー上でコード編集~プルリクエストを送り、他の開発者から承認をもらってGitHubのmasterブランチにマージするまでをやっていきたいと思います。
👇 自分が開発するブランチ(今回はpull_requestブランチ)を切り、コード(今回はindex.html)を編集し、GitHubにpushします
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// ローカルリポのmasterブランチをGitHubのorigin1にpush(ローカルリポのmasterブランチを内容を最新の状態にする) [~/desktop/git_tutorial] $ git push origin master To https://github.com/skmkuma/git_tutorial.git 2c8465b..0bfcb9b master -> master // ワークツリーとローカルリポの内容に相違がないことを確認 [~/desktop/git_tutorial] $ git status On branch master nothing to commit, working tree clean // ブランチを切る [~/desktop/git_tutorial] $ git checkout -b pull_request Switched to a new branch 'pull_request' ===============index.htmlを編集(コードの変更)======================= // statusにadd [~/desktop/git_tutorial] $ git add index.html // commit [~/desktop/git_tutorial] $ git commit [pull_request c3b7012] pull requestを追記 1 file changed, 2 insertions(+), 1 deletion(-) // pull_requestブランチの内容をGitHubにpush [~/desktop/git_tutorial] $ git push origin pull_request remote: Create a pull request for 'pull_request' on GitHub by visiting: remote: https://github.com/skmkuma/git_tutorial/pull/new/pull_request To https://github.com/skmkuma/git_tutorial.git * [new branch] pull_request -> pull_request |
👇 GitHubにアクセスし、”Pull request”をクリックします
👇 プルリクエストを作成していきます、”New pull request”をクリックします
👇 “compare”が変更したコードを含むブランチに変更し、”Create pull request”をクリックします
👇 コメントを記入し、”Create pull request”をクリックします
👇 レビューをお願いしたいエンジニア(reviewer)を選択します。以上の操作を行うことでプルリクエストが他のエンジニアにメールで送信されます。
👇 次に変更したコードを確認するレビュアーの操作を見ていきます。メール記載のurlまたは”Pull request”からプルリクエストの内容が確認できます。
👇 “Files changed”から変更されたコードを確認することができます。プルリクエストの送信者にコードの修正を依頼したい場合は修正箇所にポインタを当て+ボタンをクリックします。
👇 コメントを記入し、”Start a review”をクリックすることで修正依頼を送信します
👇 下記のようにプルリクエストの内容を開発者とレビュアー間でチャット形式でやり取りすることができます。このやりとりを経て、コードの質を上げていきます。
👇 レビュアーはプルリクエストの内容が問題ない場合は”Finish your review”から”Approve”をチェックし”Submit review”から承認します。
👇 承認がもらえた開発者は”Merge pull request”をクリックし、pull_requestブランチをGitHubのmasterブランチにマージします。
👇 マージする内容にな違いがなければ”Conform merge”をクリックします。
👇 masterブランチにマージが完了しました。開発(コードの編集)に使用していたブランチが不要の場合は”Delete branch”をクリックします。以上がプルリクエストの流れになります。
👇コードの変更が反映されたGitHubからローカルローカルにも取り込んでおきます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// ブランチのポインタを確認 [~/desktop/git_tutorial] $ git branch master * pull_request // masterブランチに移動 [~/desktop/git_tutorial] $ git checkout master M home.html Switched to branch 'master' //GitHubからローカルのmasterブランチにpull [~/desktop/git_tutorial] $ git pull origin master From https://github.com/skmkuma/git_tutorial * branch master -> FETCH_HEAD Updating 0bfcb9b..2286d10 Fast-forward index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) // 不要のbranchを削除 [~/desktop/git_tutorial] $ git branch -d pull_request Deleted branch pull_request (was c3b7012). |
コメントを残す