GitHub 404エラー完全解決ガイド:原因別の対処法と予防策

git

GitHubでリポジトリやファイルにアクセスしようとしたら…

「404 – This is not the page you are looking for」 「404 – File not found」 「There isn’t a GitHub Pages site here」

こんなエラーに遭遇して、困っていませんか?

実は、GitHubの404エラーには10種類以上の原因があり、それぞれ対処法が違います。URLのスペルミスだけでなく、権限の問題、GitHub Pagesの設定ミス、リポジトリの削除など、様々な要因が考えられます。

今回は、GitHubの404エラーを原因別に分類し、それぞれの解決方法を詳しく解説します。この記事を読めば、どんな404エラーも解決できるようになります!


スポンサーリンク

GitHub 404エラーの種類と見分け方

エラーメッセージの種類

表示されるメッセージで原因を特定:

エラーメッセージ主な原因緊急度
“This is not the page you are looking for”URL間違い、削除済み★★☆
“404 – File not found”ファイルパスの誤り★☆☆
“There isn’t a GitHub Pages site here”Pages設定ミス★★☆
“404 – Repository not found”プライベートリポジトリ、権限なし★★★
白い画面に404のみAPI関連、レート制限★★☆
カスタム404ページ意図的な設定★☆☆

エラーが発生する場所

どこで404が出るかで対処が変わる:

GitHub.com での404
├── リポジトリページ
├── ファイル・フォルダ
├── Issues・Pull Request
├── Wiki・Projects
└── ユーザープロフィール

GitHub Pages での404
├── username.github.io
├── カスタムドメイン
└── プロジェクトサイト

Raw・API での404
├── raw.githubusercontent.com
├── api.github.com
└── gist.github.com

原因1:URLの間違い・スペルミス

よくあるURLの間違いパターン

最も多い原因はこれ!

間違いパターン誤った例正しい例
大文字小文字GitHub.com/User/Repogithub.com/user/repo
スラッシュの数github.com//user/repogithub.com/user/repo
ブランチ名/tree/Master/tree/master または /tree/main
拡張子file.md.txtfile.md
エンコーディング/my file.txt/my%20file.txt
言語設定github.com/ja/usergithub.com/user

解決方法

URLを修正する手順:

  1. 大文字小文字を確認 # GitHubのURL は大文字小文字を区別 × https://github.com/Microsoft/VSCode ○ https://github.com/microsoft/vscode
  2. 正しいURLを取得 # git remote で確認 git remote -v # ブラウザのアドレスバーからコピー # 検索エンジンで正しいリポジトリを検索
  3. ブランチ名の確認 # デフォルトブランチが main か master か確認 git branch -r # またはGitHubのリポジトリページで確認

原因2:プライベートリポジトリへのアクセス

権限がない場合の404

プライベートリポジトリは権限がないと404:

症状:
- 確実に存在するはずのリポジトリが404
- ログアウト状態だと404
- 別アカウントだと404

解決方法

アクセス権限を確認・取得:

  1. ログイン状態を確認 # 右上のアバターで確認 # 正しいアカウントか確認
  2. アクセス権限の確認 # GitHub CLI で確認 gh repo view owner/private-repo # SSH接続テスト ssh -T git@github.com
  3. 権限をリクエスト
    • リポジトリオーナーに連絡
    • Organization の場合は管理者に連絡
    • Collaborator として招待してもらう
  4. 招待の承認 https://github.com/owner/repo/invitations # または通知・メールから承認

トークンを使ったアクセス

Personal Access Token(PAT)の使用:

# PAT を作成
# Settings → Developer settings → Personal access tokens

# PAT を使ってアクセス
curl -H "Authorization: token YOUR_PAT" \
  https://api.github.com/repos/owner/private-repo

# git clone with PAT
git clone https://YOUR_PAT@github.com/owner/private-repo.git

原因3:GitHub Pages の404エラー

GitHub Pages 特有の問題

Pages サイトで404が出る原因:

原因症状確認方法
Pages未有効化サイト全体が404Settings → Pages確認
ブランチ設定ミスデプロイされないソースブランチ確認
ファイルパス特定ページのみ404大文字小文字、拡張子
Jekyll処理エラービルド失敗Actions タブ確認
カスタムドメインDNS設定ミスDNSレコード確認
.nojekyll忘れアンダースコアファイル404ルートに.nojekyll追加

GitHub Pages の設定確認

Settings → Pages での確認項目:

# 正しい設定例
Source: Deploy from a branch
Branch: main / (root)
Custom domain: (設定する場合)

# よくある間違い
Branch: master → mainに変更された可能性
Folder: /docs → ファイルの場所確認

解決手順

GitHub Pages 404の解決:

  1. Pages を有効化 Settings → Pages → Source → Deploy from a branch を選択 → main ブランチ、/ (root) を選択 → Save
  2. ビルド状況を確認 Actions タブ → pages build and deployment → エラーがないか確認
  3. URLの確認 # 正しいURL形式 https://username.github.io/repository-name/ # index.htmlは省略可能 https://username.github.io/repository-name/index.html → https://username.github.io/repository-name/
  4. Jekyll の設定 # _config.yml baseurl: "/repository-name" url: "https://username.github.io"
  5. .nojekyll ファイルの追加 # アンダースコアで始まるファイルを公開する場合 touch .nojekyll git add .nojekyll git commit -m "Add .nojekyll" git push

原因4:リポジトリやファイルの削除・移動

削除されたコンテンツ

削除・移動による404:

症状:
- 以前はアクセスできた
- リンク切れ
- ブックマークが404

確認と対処方法

削除されたか確認:

# リポジトリの存在確認
gh repo view owner/repo 2>/dev/null || echo "Repository not found"

# ファイルの履歴確認
git log --follow -- path/to/file.txt

# 削除されたファイルを探す
git log --diff-filter=D --summary | grep delete

# 移動先を探す
git log --follow --name-status -- "*filename*"

リポジトリ名変更への対応

リポジトリ名が変更された場合:

# リダイレクトの確認
curl -I https://github.com/old-owner/old-repo
# 301 Moved Permanently が返れば自動リダイレクト

# remote URL の更新
git remote set-url origin https://github.com/new-owner/new-repo.git

# 新しいURLの確認
git remote -v

原因5:ブランチ関連の問題

デフォルトブランチの変更

master から main への変更:

# 現在のブランチ確認
git branch -a

# URLの修正
# 変更前:/tree/master/
# 変更後:/tree/main/

# ローカルの更新
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

存在しないブランチ

ブランチ名の確認:

# リモートブランチ一覧
git ls-remote --heads origin

# GitHub CLI で確認
gh repo view owner/repo --json defaultBranchRef

# 正しいブランチに切り替え
git checkout -b correct-branch origin/correct-branch

原因6:GitHub API・Raw ファイルの404

Raw ファイルへのアクセス

raw.githubusercontent.com での404:

# 正しいRaw URL形式
https://raw.githubusercontent.com/owner/repo/branch/path/to/file

# 例:

https://raw.githubusercontent.com/microsoft/vscode/main/README.md
# トラブルシューティング # 1. ブランチ名確認(main vs master) # 2. ファイルパスの確認(大文字小文字) # 3. プライベートリポジトリならトークン必要 curl -H "Authorization: token YOUR_PAT" \ https://raw.githubusercontent.com/owner/private-repo/main/file.txt

API レート制限

API 404の原因がレート制限:

# レート制限の確認
curl -I https://api.github.com/users/octocat
# X-RateLimit-Remaining ヘッダーを確認

# 認証してレート制限を緩和
curl -H "Authorization: token YOUR_PAT" \
  https://api.github.com/repos/owner/repo

# レート制限の状態確認
curl -H "Authorization: token YOUR_PAT" \
  https://api.github.com/rate_limit

原因7:Organization・Enterprise の制限

Organization の可視性設定

Organization レベルの制限:

症状:
- Organization のメンバーでも404
- 特定のリポジトリだけ404
- Outside collaborator は見れない

解決方法

# Organization の設定確認
# Settings → Member privileges → Repository visibility

# メンバーシップの確認
gh api user/memberships/orgs

# リポジトリへのアクセス確認
gh api repos/org/repo --include -H "Accept: application/vnd.github.v3+json"

トラブルシューティングツール

デバッグ用コマンド集

404の原因を特定するコマンド:

#!/bin/bash
# GitHub 404 デバッグスクリプト

URL=$1
echo "Checking: $URL"

# HTTPステータス確認
echo "HTTP Status:"
curl -I -s "$URL" | head -n 1

# リダイレクト確認
echo "Redirects:"
curl -I -L -s "$URL" | grep -i location

# GitHub API で確認
REPO=$(echo "$URL" | sed 's|https://github.com/||' | cut -d'/' -f1-2)
echo "API Check:"
curl -s "https://api.github.com/repos/$REPO" | jq '.message // "Repository found"'

# DNS確認
echo "DNS Resolution:"
nslookup github.com

ブラウザでの確認方法

開発者ツールを使った診断:

  1. F12で開発者ツール起動
  2. Network タブを開く
  3. ページを再読み込み(F5)
  4. Status コードを確認
    • 404:Not Found
    • 403:Forbidden(権限なし)
    • 301/302:リダイレクト

GitHub Status の確認

# GitHub のサービス状態確認
curl -s https://www.githubstatus.com/api/v2/status.json | jq '.status'

# コンポーネント別の状態
curl -s https://www.githubstatus.com/api/v2/components.json | jq '.components[] | {name, status}'

予防策:404エラーを防ぐベストプラクティス

リンク管理

404を防ぐリンクの書き方:

<!-- 相対パスを使用(リポジトリ内) -->
[README](./README.md)
[Docs](./docs/guide.md)

<!-- 永続的なリンク(特定のコミット) -->
[File](https://github.com/owner/repo/blob/abc123/file.md)

<!-- ブランチに依存しないリンク -->
[Latest](https://github.com/owner/repo/blob/HEAD/file.md)

リポジトリ設定

404を防ぐ設定:

# .github/settings.yml
repository:
  has_wiki: true
  has_projects: true
  has_issues: true
  
# リダイレクト設定
# .github/CODEOWNERS
* @default-reviewer

# カスタム404ページ
# 404.html または 404.md を作成

CI/CD でのリンクチェック

# .github/workflows/link-check.yml
name: Check Links
on: [push, pull_request]
jobs:
  linkChecker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Link Checker
        uses: lycheeverse/lychee-action@v1
        with:
          fail: true

よくある質問(FAQ)

Q1:プライベートリポジトリが404になるのはなぜ?

A:セキュリティのための仕様です

  • 存在を隠すため、権限がない場合は404を返す
  • 403 Forbiddenではなく404を返すことで存在自体を秘匿

Q2:GitHub Pages が急に404になった

A:以下を確認してください

  1. GitHub Pages が有効か確認
  2. デフォルトブランチが変更されていないか
  3. .github/workflows でのデプロイエラー
  4. カスタムドメインのDNS設定

Q3:以前のURLにアクセスしたい

A:Internet Archive を使用

https://web.archive.org/web/*/https://github.com/owner/repo

Q4:404ページをカスタマイズできる?

A:GitHub Pages では可能

<!-- 404.html をリポジトリのルートに作成 -->
<!DOCTYPE html>
<html>
<head>
    <title>404 - Page Not Found</title>
</head>
<body>
    <h1>カスタム404ページ</h1>
    <p>お探しのページは見つかりません</p>
    <a href="/">ホームに戻る</a>
</body>
</html>

Q5:APIで404が返るが、ブラウザでは見える

A:認証の問題です

# Personal Access Token を使用
curl -H "Authorization: token YOUR_PAT" \
  https://api.github.com/repos/owner/repo

まとめ:404エラーの体系的な解決アプローチ

404エラーに遭遇したら、この順番で確認:

  1. 🔗 URL の確認(スペル、大文字小文字)
  2. 🔐 ログイン状態の確認
  3. 🔑 アクセス権限の確認
  4. 🌿 ブランチ名の確認(main vs master)
  5. 📁 ファイルパスの確認
  6. 📄 GitHub Pages 設定(該当する場合)
  7. 🔄 リポジトリの移動・削除の確認
  8. 🏢 Organization の制限確認

重要なポイント:

  • 404 = 必ずしも削除されたわけではない
  • プライベートリポジトリは権限がないと404
  • GitHub Pages は設定が複雑
  • API とブラウザでは挙動が異なる

トラブルが解決しない場合:

  • GitHub Support に問い合わせ
  • GitHub Community Forum で質問
  • Stack Overflow で類似事例を検索

404エラーは frustrating ですが、原因を特定すれば必ず解決できます。この記事を参考に、冷静に一つずつ確認していきましょう!

コメント

タイトルとURLをコピーしました