📖 目次
- はじめに
- GitとGitHubって何が違うの?
- 必須用語を理解しよう
- 基本コマンドを覚えよう
- ブランチを使いこなそう
- チーム開発の流れ(プルリクエスト)
- よくあるトラブルと対処法
- チートシート(コマンド一覧)
0. はじめに
このドキュメントの使い方
- 初学者の方 → 1章から順番に読んでください
- コマンドだけ確認したい方 → 7章のチートシートへ
- 用語がわからなくなったら → 2章の用語集に戻ってください
前提条件
- Gitがインストールされている
- GitHubのアカウントを作成済み
- ターミナル(コマンドプロンプト)が開ける
参考サイト
| サイト | URL |
|---|---|
| サル先生のGit入門(Backlog) | https://backlog.com/ja/git-tutorial/ |
| GitHub公式ドキュメント(日本語) | https://docs.github.com/ja |
| カゴヤのサーバー研究室 | https://www.kagoya.jp/howto/it-glossary/develop/howtousegithub/ |
| 侍エンジニアブログ | https://www.sejuku.net/blog/258375 |
1. GitとGitHubって何が違うの?
Git とは
Gitはバージョン管理ツールです。自分のPC上で動きます。
- ファイルの変更履歴を記録できる
- 過去の状態に戻せる
- 複数人が同時に作業しても上書きを防げる
💡 イメージ:Gitは「ゲームのセーブ機能」。いつでも好きなセーブポイントに戻れる。
GitHub とは
GitHubはGitをクラウド上で管理できるサービスです。
- コードをオンライン上で保管・共有できる
- チームメンバーと共同開発できる
- コードレビューや変更履歴の確認ができる
💡 イメージ:GitHubは「DropboxのエンジニアのCode特化版」。みんなで同じコードを管理する場所。
関係性まとめ
自分のPC(ローカル) GitHub(リモート)
┌─────────────────┐ ┌────────────────┐
│ │ push → │ │
│ Gitで管理 │ │ みんなで共有 │
│ するコード │ ← pull │ するコード │
│ │ │ │
└─────────────────┘ └────────────────┘
2. 必須用語を理解しよう
リポジトリ(Repository)
コードや変更履歴をまとめて保管する「プロジェクトの箱」のこと。
| 種類 | 場所 | 説明 |
|---|---|---|
| ローカルリポジトリ | 自分のPC | 自分だけが作業する場所 |
| リモートリポジトリ | GitHub上 | チーム全員が共有する場所 |
コミット(Commit)
変更内容を記録する「セーブポイント」のこと。
- コミットするたびに履歴が積み重なっていく
- メッセージを書くことで「何を変えたか」がわかる
最初 → コミット① → コミット② → コミット③(現在)
「ログイン機能追加」 「バグ修正」 「デザイン変更」
ブランチ(Branch)
作業を「枝分かれ」させる機能。
-
main(またはmaster)が本流 - 新機能を作るときは別のブランチで作業する
- 完成したらmainに合流(マージ)させる
main ────●────────────────────●──── (本流)
\ /
feature ●──●──●──●──●──● (新機能ブランチ)
💡 なぜブランチを使うの?
mainに直接変更すると、バグがあったときに全員に影響が出てしまうから。
ブランチで作業することで、安全に開発できる。
リモートブランチ(Remote Branch)
GitHub上(リモート)にあるブランチのこと。
-
origin/main→ GitHub上のmainブランチ -
origin/feature→ GitHub上のfeatureブランチ
originはリモートリポジトリのあだ名(デフォルト名)。
マージ(Merge)
ブランチを別のブランチに統合すること。
main ────●─────────────────────●──── ← featureブランチがここに合流
\ /
feature ●──●──●──●──●──●
プルリクエスト(Pull Request / PR)
「このブランチの変更をmainに取り込んでください!」と申請する機能。
GitHub上で行い、コードレビューの場にもなる。
用語まとめ表
| 用語 | 説明 | イメージ |
|---|---|---|
| リポジトリ | コードの保管場所 | プロジェクトフォルダ |
| ローカル | 自分のPC上 | 自分の作業机 |
| リモート | GitHub上 | 共有の倉庫 |
| コミット | 変更の記録 | ゲームのセーブ |
| ブランチ | 作業の分岐 | 並行作業ライン |
| リモートブランチ | GitHub上のブランチ | 倉庫の中の棚 |
| マージ | ブランチの統合 | 合流・合体 |
| origin | リモートのあだ名 | 倉庫の住所 |
| プルリクエスト | マージの申請 | コードレビュー申請 |
| クローン | リモートをローカルにコピー | 倉庫から手元にコピー |
3. 基本コマンドを覚えよう
3-1. 最初の一歩
git init - 新しいリポジトリを作る
git init
- フォルダをGitで管理できる状態にする
- 既存プロジェクトをGitで管理し始めるときに使う
git clone - リモートをローカルにコピーする
git clone https://github.com/ユーザー名/リポジトリ名.git
- GitHubにあるリポジトリを自分のPCにコピーする
- チームの開発に参加するときの最初のステップ
3-2. 変更を記録する(add → commit の流れ)
作業する → git add → git commit
(変更) (準備) (記録)
git add - コミットの準備をする(ステージング)
# 特定のファイルをステージング
git add ファイル名
# 全ての変更をステージング
git add .
💡 イメージ:コミットする前の「荷物の仕分け作業」。
「このファイルはコミットする、あのファイルはまだしない」という選別ができる。
git commit - 変更を記録する
git commit -m "コミットメッセージ"
-
mの後にメッセージを書く(何を変えたか、なぜ変えたか)
良いコミットメッセージの例:
✅ feat: ログイン機能を追加
✅ fix: パスワードのバリデーションバグを修正
✅ docs: READMEを更新
❌ 修正した
❌ update
❌ aaa
3-3. リモートとやり取りする
git push - ローカル → リモートに送る
# 基本形
git push origin ブランチ名
# 例:mainブランチをpush
git push origin main
# 例:featureブランチをpush
git push origin feature/login
💡 イメージ:手元の荷物を倉庫(GitHub)に送る作業。
git fetch - リモートの情報だけ取得する(まだ反映しない)
git fetch origin
- GitHubの最新情報を取得するが、ローカルのファイルは変わらない
- 「どんな変更があったか確認だけしたい」ときに使う
💡 イメージ:「荷物が届いたか確認するだけ」。荷物は倉庫に置いたまま。
git pull - リモートの変更をローカルに取り込む
# 基本形
git pull origin ブランチ名
# 例:mainの最新をローカルに反映
git pull origin main
💡 イメージ:「届いた荷物を確認して、そのまま部屋に持ち込む」。
⚠️ fetchとpullの違い(重要!)
| コマンド | リモートの情報取得 | ローカルへの反映 |
|---|---|---|
git fetch |
✅ する | ❌ しない(自分で確認してからマージ) |
git pull |
✅ する | ✅ する(fetch + merge を同時にやる) |
# git pull は以下の2つを同時にやっているのと同じ
git fetch origin
git merge origin/main
fetchを使うシーン:
- 「チームメンバーが何を変えたか確認してから取り込みたい」
- 競合(コンフリクト)が起きそうなとき
pullを使うシーン:
- 「すぐ最新状態にしたい」
- 毎朝作業開始前に最新を取り込む
3-4. 状態を確認する
git status - 現在の状態を確認する
git status
- どのファイルが変更されているか
- どのファイルがステージング済みか が分かる
git log - コミット履歴を確認する
# 詳細な履歴
git log
# 1行で見やすく表示
git log --oneline
# グラフ付きで表示(ブランチの分岐が見える)
git log --oneline --graph --all
git diff - 変更内容を確認する
# ステージング前の変更を確認
git diff
# ステージング後の変更を確認
git diff --staged
4. ブランチを使いこなそう
4-1. ブランチの確認
# ローカルのブランチ一覧
git branch
# リモートを含む全ブランチ一覧
git branch -a
# 現在のブランチは「*」がついている
# * main
# feature/login
# remotes/origin/main
4-2. ブランチを作る・切り替える
# ブランチを作成する
git branch ブランチ名
# ブランチを切り替える(新しい方法)
git switch ブランチ名
# ブランチを切り替える(古い方法 / よく見かける)
git checkout ブランチ名
# ブランチを作成して同時に切り替える(一番よく使う!)
git switch -c ブランチ名
git checkout -b ブランチ名 # 古い書き方
ブランチ名の命名例:
feature/login → ログイン機能追加
feature/user-profile → ユーザープロフィール機能
fix/login-bug → ログインのバグ修正
docs/readme-update → ドキュメント更新
4-3. リモートブランチとやり取りする
# ローカルのブランチをリモートに送る(初回)
git push origin ブランチ名
# リモートのブランチをローカルに取得して切り替える
git switch -c ブランチ名 origin/ブランチ名
4-4. マージする
# mainブランチに移動してから
git switch main
# featureブランチをmainに統合
git merge feature/login
5. チーム開発の流れ(プルリクエスト)
開発の標準フロー
① mainを最新にする
git pull origin main
② 作業ブランチを作る
git switch -c feature/新機能名
③ コードを書く
(開発作業)
④ 変更をステージングしてコミット
git add .
git commit -m "feat: ○○機能を追加"
⑤ リモートにpush
git push origin feature/新機能名
⑥ GitHubでプルリクエストを作成
→ GitHub上でボタンを押してPRを作る
⑦ チームメンバーにレビューしてもらう
→ コメント・修正対応
⑧ mainにマージ(GitHub上で行う)
⑨ ローカルのmainを最新にする
git switch main
git pull origin main
⑩ 使い終わったブランチを削除(任意)
git branch -d feature/新機能名
プルリクエストの書き方
タイトル:
feat: ログイン機能を追加
fix: パスワードリセットのバグを修正
本文に書くと良いこと:
- 何をしたか(概要)
- なぜしたか(背景・理由)
- どうテストしたか
- レビュアーに見てほしいポイント
6. よくあるトラブルと対処法
⚠️ コンフリクト(競合)が起きた
原因: 同じファイルの同じ行を複数人が変更したとき
対処法:
# pullしたらコンフリクトが発生した場合
git pull origin main
# コンフリクトしたファイルを開くと以下のような表示になる
<<<<<<< HEAD
自分の変更内容
=======
相手の変更内容
>>>>>>> origin/main
# ↑の記号を全部消して、正しい内容に書き直す
# 書き直したら再度 add → commit
git add .
git commit -m "fix: コンフリクトを解消"
⚠️ pushが弾かれた
エラーメッセージ:
! [rejected] main -> main (fetch first)
原因: リモートに自分が知らない新しいコミットがある
対処法:
# まずpullして最新を取り込む
git pull origin main
# コンフリクトがなければそのままpushできる
git push origin main
⚠️ コミットメッセージを間違えた(直前のコミットのみ)
git commit --amend -m "正しいメッセージ"
⚠️ すでにpushしたコミットに使うと問題が起きることがあるので注意!
⚠️ addしたファイルを取り消したい(コミット前)
# 特定ファイルのステージングを取り消す
git restore --staged ファイル名
# 全てのステージングを取り消す
git restore --staged .
⚠️ 直前のコミットを取り消したい(pushする前)
# コミットだけ取り消す(変更内容はそのまま残る)
git reset --soft HEAD~1
# コミットも変更も全部取り消す(注意!)
git reset --hard HEAD~1
7. チートシート(コマンド一覧)
基本操作
| コマンド | 説明 |
|---|---|
git init |
リポジトリを新規作成 |
git clone <URL> |
リモートをローカルにコピー |
git status |
現在の状態を確認 |
git log --oneline |
コミット履歴を確認(簡易) |
git diff |
変更内容を確認 |
変更を記録する
| コマンド | 説明 |
|---|---|
git add . |
全変更をステージング |
git add <ファイル名> |
特定ファイルをステージング |
git commit -m "メッセージ" |
コミット(記録) |
git commit --amend -m "メッセージ" |
直前のコミットメッセージを修正 |
リモートとやり取り
| コマンド | 説明 |
|---|---|
git push origin <ブランチ名> |
ローカル → リモートに送る |
git pull origin <ブランチ名> |
リモートの変更を取り込む |
git fetch origin |
リモートの情報だけ取得(反映しない) |
ブランチ操作
| コマンド | 説明 |
|---|---|
git branch |
ローカルのブランチ一覧 |
git branch -a |
全ブランチ一覧(リモート含む) |
git switch <ブランチ名> |
ブランチを切り替え |
git switch -c <ブランチ名> |
ブランチを作成して切り替え |
git merge <ブランチ名> |
ブランチをマージ |
git branch -d <ブランチ名> |
ブランチを削除(マージ済みのみ) |
取り消し系
| コマンド | 説明 |
|---|---|
git restore --staged <ファイル名> |
ステージングを取り消す |
git restore <ファイル名> |
変更を取り消す(⚠️元に戻せない) |
git reset --soft HEAD~1 |
直前のコミットを取り消す(変更は残る) |
git reset --hard HEAD~1 |
直前のコミットと変更を全て取り消す(⚠️危険) |
📝 まとめ:最低限覚えるべきコマンド(5つ)
git add .→ ステージングgit commit -m "メッセージ"→ 記録git push origin ブランチ名→ リモートに送るgit pull origin main→ 最新を取り込むgit switch -c ブランチ名→ ブランチ作成・切り替え