1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🐙 GitHub入門【第二回】GitHubでチーム開発をはじめよう!push・pull・プルリクエストを完全解説

1
Posted at

1. 👋 はじめに

前回の記事では、Gitの基本(コミット・ブランチ・コンフリクト)を学びました。

今回はいよいよ GitHub を使って、チームでの開発フローを身につけましょう!

この記事を読めば:

  • ✅ GitとGitHubの違いがわかる
  • ✅ リモートリポジトリへのpush・pullができる
  • ✅ プルリクエストを使ったチーム開発の流れがわかる

2. 🤔 GitとGitHubの違い

「GitとGitHubって同じじゃないの?」という疑問、よくあります!実はまったく別物です。

🔧 Git
  └─ バージョン管理ツール(ソフトウェア)
  └─ ローカル(自分のPC)で動く
  └─ コマンドラインで操作する
  └─ 無料・オープンソース
🐙 GitHub
  └─ Gitリポジトリをクラウドで管理するサービス(ウェブサービス)
  └─ GitHubのサーバー上でリポジトリを管理
  └─ ブラウザで操作できる
  └─ チームでコードを共有・レビューできる

GitHubと似たサービス

GitHubの他にも同様のサービスがあります:

サービス 特徴
🐙 GitHub 世界最大・オープンソースが多い
🦊 GitLab 自己ホスティング可能・CI/CD機能が充実
🪣 Bitbucket Atlassian製・JiraやConfluenceと連携しやすい

3. 🏠 ローカルとリモートの概念

GitHubを使うときに登場する重要な概念です。

🖥️ ローカルリポジトリ         |       🌐 リモートリポジトリ
  (自分のPC上)              |       (GitHubのサーバー上)
                             |
  📁 my-project/            |     🐙 github.com/username/my-project
    └─ main.py               |
    └─ .git/
                   push(アップロード) → 
                  ← pull(ダウンロード)
用語 意味
🏠 ローカル 自分のPCの中にあるリポジトリ
🌐 リモート GitHubのサーバー上にあるリポジトリ
⬆️ push ローカルの変更をリモートにアップロード
⬇️ pull リモートの最新状態をローカルに取り込む
📥 clone リモートリポジトリをローカルにコピー

4. 🚀 GitHubの始め方

アカウント作成

https://github.com にアクセスしてアカウントを作成します。無料プランで十分です!

新しいリポジトリを作成

  1. GitHubにログインして右上の +New repository をクリック
  2. リポジトリ名を入力(例:my-project
  3. Public(公開)または Private(非公開)を選択
  4. Create repository をクリック

SSHキーの設定(推奨)

GitHubとの通信を安全・便利にするためにSSHキーを設定します。

# SSHキーを生成
ssh-keygen -t ed25519 -C "your@email.com"
# → Enterを3回押してデフォルト設定で生成

# 公開鍵を表示してコピー
cat ~/.ssh/id_ed25519.pub

コピーした公開鍵をGitHubに登録(GitHubダッシュボードで登録):

  • 右上にあるご自身のアイコンから
    SettingsSSH and GPG keysNew SSH key → 貼り付けて保存

"your@email.com"はコメントです。認証とは無関係な識別ラベルで、誰のキーかを判別するためです。内容は何でもよく、変更してもセキュリティや動作に影響しません。


5. ⬆️ push:ローカルからGitHubへアップロード

はじめてのpush

# 1️⃣ ローカルリポジトリをGitHubと紐付け
git remote add origin git@github.com:username/my-project.git

# 上記のgit@~について簡単に解説
git@github.com:username/repository.git
│   │          │        └─ リポジトリ名
│   │          └─ GitHubのユーザー名
│   └─ 接続先サーバー(GitHub)
└─ SSHのログインユーザー名
# 2️⃣ リモートの確認
git remote -v
# origin  git@github.com:username/my-project.git (fetch)
# origin  git@github.com:username/my-project.git (push)
# 3️⃣ pushする
git push -u origin main
# -u は「今後はこのリモート・ブランチをデフォルトにする」という設定
# 次回からは git push だけでOK!

2回目以降のpush

# ファイルを編集・コミットしたあと
git add .
git commit -m "ログイン機能を追加"
git push   # これだけでOK!🎉

originって何?

origin = リモートリポジトリのニックネーム

GitHubのURLは長いので、「origin」という短い名前で呼ぶ
  git@github.com:username/my-project.git
          ↓ origin という名前をつける
  git push origin main

6. ⬇️ clone・pull:GitHubからダウンロード

clone:リポジトリを丸ごとコピー

チームに新しいメンバーが加わったときや、他のPCで作業するときに使います。

# GitHubのリポジトリをローカルにコピー
git clone git@github.com:username/my-project.git

# クローンするとフォルダが自動作成される
cd my-project
ls
# main.py README.md ...

pull:最新の変更を取り込む

チームメンバーがpushした変更を自分のローカルに取り込むときに使います。

# リモートの最新状態を取得して、ローカルに反映
git pull

# 詳しく書くと
git pull origin main

fetch と pull の違い

git fetch → リモートの変更を確認するだけ(ローカルには反映しない)
git pull  → リモートの変更を取得 + ローカルに反映(fetch + merge)

🔍 まず確認してから取り込みたいときは fetch
⚡ とりあえず最新にしたいときは pull

7. 👥 チーム開発の基本フロー

GitHubを使ったチーム開発の標準的な流れを紹介します。GitHub Flow と呼ばれるシンプルで人気のあるフローです。

GitHub Flow の全体像

1️⃣ mainブランチから作業ブランチを作成
        ↓
2️⃣ 作業ブランチで開発・コミット
        ↓
3️⃣ GitHubにpush
        ↓
4️⃣ プルリクエスト(PR)を作成
        ↓
5️⃣ チームメンバーがコードレビュー
        ↓
6️⃣ レビューOK → mainにマージ
        ↓
7️⃣ ブランチを削除・次の作業へ

ステップ①:作業ブランチを作成

# まず最新のmainを取得
git switch main    # mainに移動
git pull           # 最新状態を取得

# 作業ブランチ(feature/user-profile)を作成して切り替え
git switch -c feature/user-profile

ブランチ名の命名規則(例):

feature/xxx  → 新機能の開発
bugfix/xxx   → バグ修正
hotfix/xxx   → 緊急の本番バグ修正など

ステップ②:開発・コミット

# 作業ブランチで開発する
# ... コードを書く ...

# こまめにコミット
git add .
git commit -m "ユーザープロフィールページを追加"
git commit -m "プロフィール画像のアップロード機能を追加"

ステップ③:GitHubにpush

git push -u origin feature/user-profile

ステップ④:プルリクエスト(PR)を作成

GitHubのページを開くと「Compare & pull request」ボタンが表示されます。

プルリクエストに書くべき内容(参考):

## 📝 変更内容
ユーザープロフィールページを新規追加しました。

## 🎯 変更の目的
ユーザーが自分の情報を確認・編集できるようにするため。

## 🔍 レビューしてほしい点
- プロフィール画像のバリデーション処理(50行目)
- エラーハンドリングの方針が合っているか確認お願いします

## 📸 スクリーンショット
(画面キャプチャがあると親切!)

ステップ⑤:コードレビュー

チームメンバーがコードを確認して、コメントや修正依頼を行います。

レビューで使う機能:

💬 コメント   → 質問・提案(承認でも却下でもない)
✅ Approve   → レビューOK!マージしていいよ
❌ Request changes → 修正してほしい点がある

レビューコメントの例:

👍「この実装いいですね!」

🤔「この変数名、もう少しわかりやすくできそうです。
   例えば `userData` より `userProfile` の方が明確かも?」

⚠️「ここでエラーが起きた場合のハンドリングがないので
   try-catchを追加した方がよいと思います」

ステップ⑥:修正してpush

レビューで指摘があったら修正してpushすると、PRに自動で反映されます。

# 修正する
# ... コードを直す ...

git add .
git commit -m "レビュー対応:変数名を修正"
git push   # 同じブランチにpushするだけでPRに反映される!

ステップ⑦:マージして完了

Approveをもらったら Merge pull request ボタンでmainにマージ!

# マージ後はローカルのmainも最新にしておく
git switch main
git pull

# 不要になった作業ブランチを削除
git branch -d feature/user-profile

マージとは?
別々のブランチの変更履歴を1つに統合するコマンド。 例えば機能開発用のブランチで作った変更を、main ブランチに取り込む際に使います。


8. 🔧 知っておくと便利なGitHub機能

📋 Issues(イシュー)

バグ報告・機能要望・タスク管理に使います。

Issueの使い方:
  🐛 バグを発見 → Issueを作成
  💡 新機能のアイデア → Issueに書く
  📋 タスクを一覧管理 → Issue + ラベルで整理

PRとIssueを紐付ける:
  PRの説明文に「Closes #123」と書くと
  → マージ時にIssue #123 が自動でクローズされる!

🛡️ ブランチ保護ルール

mainブランチを守るための設定です。特にチーム開発ではなるべく設定しましょう。

Settings → Branches → Add rule

おすすめの設定:
  ✅ Require pull request before merging
     → 直接pushを禁止・必ずPRを通す

  ✅ Require approvals(1以上)
     → 最低1人のApproveがないとマージできない
     ※ Require pull request mergingにチェックを入れると出てきます

  ✅ Require status checks to pass
     → テストが通らないとマージできない

👀 .gitignore:GitHubに上げてはいけないファイルを指定

パスワードや環境設定ファイルは絶対GitHubに上げてはいけません!

# .gitignore ファイルを作成
touch .gitignore
# .gitignore の中身(例)
.env               # 環境変数(パスワードなど)
__pycache__/       # Pythonのキャッシュ
node_modules/      # Node.jsのパッケージ
*.log              # ログファイル
.DS_Store          # macOSのシステムファイル

⚠️ 注意!
.envファイルをGitHubに上げてしまうと
APIキーやパスワードが世界中に公開されてしまいます😱

一度pushしてしまったら、履歴から完全削除が必要で
とても大変な作業になります…
必ず最初に.gitignoreを設定しましょう!


9. 📋 よく使うコマンド早見表(GitHub編)

# リモート操作
git remote add origin <URL>   # リモートを登録
git remote -v                 # リモートの確認
git clone <URL>               # リポジトリをコピー
git push -u origin main       # 初回push
git push                      # 2回目以降のpush
git pull                      # 最新を取得して反映
git fetch                     # 最新を取得するだけ(反映しない)

10. 🎯 まとめ

概念 説明
🐙 GitHub Gitリポジトリをクラウドで管理するサービス
🏠 ローカル 自分のPC上のリポジトリ
🌐 リモート GitHubサーバー上のリポジトリ
⬆️ push ローカル → リモートへアップロード
⬇️ pull リモート → ローカルへ取り込む
📥 clone リモートをローカルにまるごとコピー
🔀 プルリクエスト 変更のレビュー・マージ依頼

GitHubを使ったチーム開発の基本フローは 「ブランチを切る → 開発 → push → PR → レビュー → マージ」 のサイクルです。最初は慣れないかもしれませんが、繰り返すうちに自然と身につきます!💪

まずは自分のプロジェクトをGitHubにpushすることから始めてみましょう🌟


🔗 シリーズ記事

  • 【第一回】Git基礎 → バージョン管理・コミット・ブランチ・コンフリクト
  • 【第二回】GitHub入門(この記事)

💬 質問や感想があれば、コメント欄でお気軽にどうぞ!
👍 役に立ったら、いいね&ストックをお願いします!
🎓 ここまで読んでくださって、本当にありがとうございました!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?