Chapter 9: GitHub 入門
GitHub でのリモート共同開発の基本
Chapter 9: GitHub 入門
9.1 GitHub とは
GitHub(ギットハブ)は、Gitリポジトリをクラウド上で管理・共有できるプラットフォームです。2008年にサービスを開始し、現在では世界中の1億人以上の開発者が利用しています。
「Git」と「GitHub」は別物です:
- Git: バージョン管理ツール(ソフトウェア)
- GitHub: Gitリポジトリをホスティングするサービス(Webサービス)
GitHubを使うことで何ができるか:
9.2 アカウント作成と SSH 鍵の設定
アカウント作成
- github.com にアクセス
- 「Sign up」からアカウントを作成
- メールアドレスを確認
出典: GitHub 公式ドキュメント
TODO: あとで実際のスクリーンショットに置き換え - GitHub のトップページとサインアップボタン
SSH 鍵の設定
GitHubとローカルPCを安全に接続するために SSH鍵を設定します。SSH鍵は「鍵と鍵穴」のようなもので、パスワードより安全に認証できます。
# SSH 鍵を生成(メールアドレスは自分のものに変更)
ssh-keygen -t ed25519 -C "yamada@example.com"
# Enter file in which to save the key: ← そのままEnterでOK
# Enter passphrase: ← 任意(省略可)# 公開鍵の内容を表示
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAA... yamada@example.com表示された内容をコピーして、GitHubの設定ページに追加します。
GitHubにログインして Settings → SSH and GPG keys → New SSH key から追加してください。
# 接続テスト
ssh -T git@github.com
# Hi yamada! You've successfully authenticated, but GitHub does not provide shell access.
# このメッセージが出れば成功9.3 リモートリポジトリの作成
GitHub でリポジトリを作成
- GitHub にログイン
- 右上の「+」→「New repository」をクリック
- リポジトリ名を入力(例:
my-first-repo) - Public / Private を選択
- 「Create repository」をクリック
出典: GitHub 公式ドキュメント
TODO: あとで実際のスクリーンショットに置き換え - GitHub の新規リポジトリ作成画面
ローカルとリモートを連携する
# ローカルにリポジトリを作成してから連携する場合
cd my-project
git init
git add .
git commit -m "最初のコミット"
# リモートリポジトリを登録(URLは自分のものに変更)
git remote add origin git@github.com:yamada/my-first-repo.git
# リモートに送信
git push -u origin mainorigin はリモートリポジトリのデフォルト名(別名でもOK)。-u オプションをつけると以降は git push だけで送れます。
9.4 push と pull
リモートに送る(push)
# ローカルの変更をリモートに送る
git push origin main
# -u をつけて設定済みの場合は短縮できる
git pushリモートから取得する(pull)
# リモートの最新変更を取得してマージ
git pull origin main
# 短縮形
git pullリモートリポジトリをクローンする(clone)
他の人のリポジトリや、別のPCで作業する場合:
# リポジトリをローカルにコピー
git clone git@github.com:yamada/my-first-repo.git
# フォルダ名を指定してクローン
git clone git@github.com:yamada/my-first-repo.git my-projectpush/pull の流れ
9.5 Issue で作業を管理する
Issue(イシュー)はタスク管理・バグ報告・機能要望を記録する機能です。
Issue の作成
- リポジトリのページで「Issues」タブをクリック
- 「New issue」をクリック
- タイトルと説明を入力
- ラベル・担当者を設定
- 「Submit new issue」をクリック
出典: GitHub 公式ドキュメント
TODO: あとで実際のスクリーンショットに置き換え - GitHub の Issue 作成画面
Issue の活用例
タイトル: ログインページのバリデーションエラーが表示されない
説明:
## 発生している問題
メールアドレスが空の状態でログインボタンを押しても
エラーメッセージが表示されない。
## 再現手順
1. ログインページにアクセス
2. メールアドレスを空のままパスワードを入力
3. ログインボタンをクリック
## 期待する動作
「メールアドレスを入力してください」と表示される
## 実際の動作
何も表示されないコミットメッセージに #123(Issue番号)を含めると、コミットとIssueが自動で紐づきます:
git commit -m "ログインバリデーションを修正 #42"9.6 Pull Request を作る
Pull Request(PR)とは、ブランチの変更をメインに取り込むためのレビュー依頼です。コードレビューの基本的な仕組みです。
Pull Request の作成手順
# 1. ブランチを作成して作業
git checkout -b feature/add-login-validation
# 2. 変更してコミット
git add .
git commit -m "ログインバリデーションを追加 #42"
# 3. GitHub にプッシュ
git push origin feature/add-login-validation- GitHubにアクセスすると「Compare & pull request」ボタンが表示される
- タイトル・説明を記入して「Create pull request」をクリック
出典: GitHub 公式ドキュメント
TODO: あとで実際のスクリーンショットに置き換え - GitHub の Pull Request 作成画面
良い PR 説明の書き方
## 変更内容
ログインフォームのバリデーションを実装しました。
## 変更理由
Issue #42 で報告されたバグの修正
## 変更箇所
- `login.js`: バリデーション関数を追加
- `login.html`: エラーメッセージ表示エリアを追加
## テスト方法
1. ログインページにアクセス
2. メールアドレスを空にして送信
3. エラーメッセージが表示されることを確認
Closes #42Closes #42 と書くと、PRがマージされたときにIssue #42 が自動でクローズされます。
9.7 レビューとマージ
コードレビューの流れ
レビューコメントへの対応
# レビューでの指摘を修正
git add .
git commit -m "レビュー指摘を修正: バリデーションメッセージを変更"
git push origin feature/add-login-validation
# プッシュすると自動的に PR に反映されるマージ方法
GitHubには3種類のマージ方法があります:
| 方法 | 説明 | 使いどころ |
|---|---|---|
| Merge commit | マージコミットを作成 | 履歴を残したい |
| Squash and merge | コミットを1つにまとめてマージ | PRの細かいコミットをまとめたい |
| Rebase and merge | コミットをリベースしてマージ | 線形な履歴を保ちたい |
チームで統一した方法を使うのが一般的です。
9.8 GitHub Flow の全体像
GitHub Flow まとめ:
mainは常にデプロイ可能な状態を保つ- 作業は必ずブランチを切る(命名例:
feature/xxx、fix/xxx、docs/xxx) - こまめにコミット・プッシュ
- Pull Request でレビューを依頼
- 承認されたらマージ
- 使い終わったブランチは削除
GitHub Flow は現場でも最も広く使われているワークフローです。このフローを習得すれば、多くのチームにすぐ貢献できます。
まとめ
| 操作 | コマンド / 手順 |
|---|---|
| リモートを登録 | git remote add origin <URL> |
| リモートに送る | git push origin <ブランチ名> |
| リモートから取得 | git pull origin main |
| リモートをクローン | git clone <URL> |
| PR 作成 | GitHub の Web UI から |
次のステップ: GitLab との違い で別のプラットフォームとの比較を学びます。