GitHubのプルリクエストワークフローを学ぶ - Hello World チュートリアル完全ガイド
1. はじめに
GitHubの公式チュートリアル「Hello World」は、プルリクエストワークフローの本質を理解するための最良の入門教材です。このチュートリアルでは、リポジトリ、ブランチ、コミット、プルリクエストといったGitHubの核となる概念を、実際に手を動かしながら体系的に学習できます。
コマンドラインやGitの知識は一切不要です。ブラウザのみで完結する設計になっているため、GitHubアカウントさえあれば誰でもすぐに始められます。
1.1 このチュートリアルで学べること
- リポジトリの作成と利用方法
- ブランチの作成と管理手法
- ファイルの変更とコミットの実践
- プルリクエストの作成とマージプロセス
2. 前提条件
- GitHubアカウントを保有していること
- コーディング知識、コマンドライン操作、Git操作は不要
3. ステップ1: リポジトリの作成
リポジトリは、プロジェクトに関連するファイル、画像、動画、さらには他のフォルダまでを含む「プロジェクトのコンテナ」です。通常、同じプロジェクトや作業に属するアイテムをまとめて管理します。
多くのリポジトリには README ファイルが含まれています。これはプロジェクトに関する情報を記載したファイルで、Markdown形式で書かれます。Markdownはプレーンテキストを簡単にフォーマットできる読みやすい言語です。
3.1 作成手順
- ページ右上の「+」ボタンから「New repository」を選択します
- リポジトリ名に
hello-worldと入力します - 説明欄に短い説明を入力します(例: 「このリポジトリはGitHub Flowを練習するためのものです」)
- リポジトリの公開設定を「Public」または「Private」から選択します
- 「Add a README file」にチェックを入れます
- 「Create repository」をクリックします
これで、アイデア、リソース、他のユーザーとの議論を保存できる hello-world リポジトリが完成しました。
4. ステップ2: ブランチの作成
ブランチ機能を使うと、リポジトリの異なるバージョンを同時に持つことができます。
デフォルトでは、リポジトリには main という名前の基準となるブランチが1つ存在します。main から追加のブランチを作成することで、メインのコードに影響を与えずに新機能を開発できます。
異なるブランチで行われた作業は、マージするまで main ブランチには表示されません。これにより、実験的な編集を行い、コミットする前に検証することができます。
このダイアグラムは、main ブランチから feature ブランチが分岐し、変更をコミット、プルリクエストを送信、変更について議論、そして main にマージされるまでの流れを示しています。
4.1 ブランチ作成の手順
-
hello-worldリポジトリの「Code」タブをクリックします - ファイルリストの上にある「main」と表示されているドロップダウンメニューをクリックします
- テキストボックスにブランチ名
readme-editsを入力します - 「Create branch: readme-edits from main」をクリックします
これで2つのブランチ main と readme-edits ができました。現時点では、両者はまったく同じ内容です。次のステップで、新しい readme-edits ブランチに変更を加えます。
5. ステップ3: 変更の作成とコミット
前のステップで新しいブランチを作成すると、GitHubは自動的に新しい readme-edits ブランチのコードページに遷移します。これは main のコピーです。
リポジトリ内のファイルに変更を加えて保存できます。GitHub上では、保存された変更を「コミット」と呼びます。各コミットには関連するコミットメッセージがあり、特定の変更が行われた理由を説明する記述です。コミットメッセージは変更履歴を記録するため、他の貢献者が何を行い、なぜそれを行ったかを理解できます。
5.1 変更手順
- 作成した
readme-editsブランチで、README.mdファイルをクリックします - ファイルを編集するため、編集ボタンをクリックします
- エディタで、自分自身について少し書きます
- 「Commit changes」をクリックします
- 「Commit changes」ボックスで、変更内容を説明するコミットメッセージを書きます
- 「Commit changes」をクリックします
これらの変更は readme-edits ブランチの README ファイルにのみ適用されるため、このブランチには main とは異なる内容が含まれることになります。
6. ステップ4: プルリクエストの作成
main から分岐したブランチに変更を加えたので、次はプルリクエストを作成できます。
プルリクエストは、GitHub上でのコラボレーションの核心です。プルリクエストを作成すると、変更を提案し、誰かにレビューを依頼して、自分の貢献をプルしてブランチにマージすることを要求します。プルリクエストは両方のブランチの内容の差分を表示し、変更、追加、削除が異なる色で示されます。
コミットを行えば、コードが完成する前でも、すぐにプルリクエストを作成して議論を開始できます。
このステップでは、自分のリポジトリ内でプルリクエストを作成し、その後自分自身でマージします。これは、より大きなプロジェクトに取り組む前にGitHub flowを練習する素晴らしい方法です。
6.1 プルリクエスト作成手順
-
hello-worldリポジトリの「Pull requests」タブをクリックします - 「New pull request」をクリックします
- 「Example Comparisons」ボックスで、作成したブランチ
readme-editsを選択して、main(元のブランチ)と比較します - Compareページで差分を確認し、送信したい内容であることを確認します
- 「Create pull request」をクリックします
- プルリクエストにタイトルを付け、変更内容の簡単な説明を書きます(絵文字の使用や画像・GIFのドラッグアンドドロップも可能です)
- 「Create pull request」をクリックします
6.2 プルリクエストのレビュー
他のユーザーとコラボレーションする際、ここでレビューを依頼することになります。これにより、共同作業者は変更を main ブランチにマージする前に、プルリクエストにコメントしたり変更を提案したりできます。
このチュートリアルではプルリクエストのレビューは扱いませんが、詳しく学びたい場合は、GitHub公式ドキュメントやGitHub Skillsのコースを参照してください。
7. ステップ5: プルリクエストのマージ
この最終ステップでは、readme-edits ブランチを main ブランチにマージします。プルリクエストをマージすると、readme-edits ブランチの変更が main に組み込まれます。
場合によっては、プルリクエストが main の既存コードと競合する変更を導入することがあります。競合がある場合、GitHubは競合するコードについて警告し、競合が解決されるまでマージを防ぎます。競合を解決するコミットを作成するか、プルリクエストのコメントを使用してチームメンバーと競合について議論できます。
このチュートリアルでは、競合は発生しないはずなので、ブランチをメインブランチにマージする準備ができています。
7.1 マージ手順
- プルリクエストの下部にある「Merge pull request」をクリックして、変更を
mainにマージします - 「Confirm merge」をクリックします。リクエストが正常にマージされ、リクエストがクローズされたというメッセージが表示されます
- 「Delete branch」をクリックします。プルリクエストがマージされ、変更が
mainに反映されたので、readme-editsブランチを安全に削除できます。プロジェクトにさらに変更を加えたい場合は、いつでも新しいブランチを作成してこのプロセスを繰り返すことができます -
hello-worldリポジトリの「Code」タブに戻り、mainに公開された変更を確認します
8. まとめ
このチュートリアルを完了することで、GitHubでプロジェクトを作成し、プルリクエストを行う方法を学びました。
この過程で、以下の方法を習得しました。
- リポジトリを作成する
- 新しいブランチを開始して管理する
- ファイルを変更し、その変更をGitHubにコミットする
- プルリクエストを作成してマージする