生成AI研修
Part 2: 開発ツール基礎

Chapter 9: GitHub 入門

GitHub でのリモート共同開発の基本

Chapter 9: GitHub 入門

9.1 GitHub とは

GitHub(ギットハブ)は、Gitリポジトリをクラウド上で管理・共有できるプラットフォームです。2008年にサービスを開始し、現在では世界中の1億人以上の開発者が利用しています。

「Git」と「GitHub」は別物です:

  • Git: バージョン管理ツール(ソフトウェア)
  • GitHub: Gitリポジトリをホスティングするサービス(Webサービス)

GitHubを使うことで何ができるか:

9.2 アカウント作成と SSH 鍵の設定

アカウント作成

  1. github.com にアクセス
  2. 「Sign up」からアカウントを作成
  3. メールアドレスを確認

GitHub のナビゲーションメニュー 出典: 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 でリポジトリを作成

  1. GitHub にログイン
  2. 右上の「+」→「New repository」をクリック
  3. リポジトリ名を入力(例: my-first-repo
  4. Public / Private を選択
  5. 「Create repository」をクリック

GitHub の新規リポジトリ作成画面 出典: 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 main

origin はリモートリポジトリのデフォルト名(別名でも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-project

push/pull の流れ

9.5 Issue で作業を管理する

Issue(イシュー)はタスク管理・バグ報告・機能要望を記録する機能です。

Issue の作成

  1. リポジトリのページで「Issues」タブをクリック
  2. 「New issue」をクリック
  3. タイトルと説明を入力
  4. ラベル・担当者を設定
  5. 「Submit new issue」をクリック

GitHub の 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
  1. GitHubにアクセスすると「Compare & pull request」ボタンが表示される
  2. タイトル・説明を記入して「Create pull request」をクリック

GitHub の Pull Request 作成画面 出典: GitHub 公式ドキュメント

TODO: あとで実際のスクリーンショットに置き換え - GitHub の Pull Request 作成画面

良い PR 説明の書き方

## 変更内容
ログインフォームのバリデーションを実装しました。

## 変更理由
Issue #42 で報告されたバグの修正

## 変更箇所
- `login.js`: バリデーション関数を追加
- `login.html`: エラーメッセージ表示エリアを追加

## テスト方法
1. ログインページにアクセス
2. メールアドレスを空にして送信
3. エラーメッセージが表示されることを確認

Closes #42

Closes #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 まとめ:

  1. main は常にデプロイ可能な状態を保つ
  2. 作業は必ずブランチを切る(命名例: feature/xxxfix/xxxdocs/xxx
  3. こまめにコミット・プッシュ
  4. Pull Request でレビューを依頼
  5. 承認されたらマージ
  6. 使い終わったブランチは削除

GitHub Flow は現場でも最も広く使われているワークフローです。このフローを習得すれば、多くのチームにすぐ貢献できます。

まとめ

操作コマンド / 手順
リモートを登録git remote add origin <URL>
リモートに送るgit push origin <ブランチ名>
リモートから取得git pull origin main
リモートをクローンgit clone <URL>
PR 作成GitHub の Web UI から

次のステップ: GitLab との違い で別のプラットフォームとの比較を学びます。

On this page