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/Repo | github.com/user/repo |
スラッシュの数 | github.com//user/repo | github.com/user/repo |
ブランチ名 | /tree/Master | /tree/master または /tree/main |
拡張子 | file.md.txt | file.md |
エンコーディング | /my file.txt | /my%20file.txt |
言語設定 | github.com/ja/user | github.com/user |
解決方法
URLを修正する手順:
- 大文字小文字を確認
# GitHubのURL は大文字小文字を区別 × https://github.com/Microsoft/VSCode ○ https://github.com/microsoft/vscode
- 正しいURLを取得
# git remote で確認 git remote -v # ブラウザのアドレスバーからコピー # 検索エンジンで正しいリポジトリを検索
- ブランチ名の確認
# デフォルトブランチが main か master か確認 git branch -r # またはGitHubのリポジトリページで確認
原因2:プライベートリポジトリへのアクセス
権限がない場合の404
プライベートリポジトリは権限がないと404:
症状:
- 確実に存在するはずのリポジトリが404
- ログアウト状態だと404
- 別アカウントだと404
解決方法
アクセス権限を確認・取得:
- ログイン状態を確認
# 右上のアバターで確認 # 正しいアカウントか確認
- アクセス権限の確認
# GitHub CLI で確認 gh repo view owner/private-repo # SSH接続テスト ssh -T git@github.com
- 権限をリクエスト
- リポジトリオーナーに連絡
- Organization の場合は管理者に連絡
- Collaborator として招待してもらう
- 招待の承認
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未有効化 | サイト全体が404 | Settings → 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の解決:
- Pages を有効化
Settings → Pages → Source → Deploy from a branch を選択 → main ブランチ、/ (root) を選択 → Save
- ビルド状況を確認
Actions タブ → pages build and deployment → エラーがないか確認
- URLの確認
# 正しいURL形式 https://username.github.io/repository-name/ # index.htmlは省略可能 https://username.github.io/repository-name/index.html → https://username.github.io/repository-name/
- Jekyll の設定
# _config.yml baseurl: "/repository-name" url: "https://username.github.io"
- .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
ブラウザでの確認方法
開発者ツールを使った診断:
- F12で開発者ツール起動
- Network タブを開く
- ページを再読み込み(F5)
- 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:以下を確認してください
- GitHub Pages が有効か確認
- デフォルトブランチが変更されていないか
- .github/workflows でのデプロイエラー
- カスタムドメインの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エラーに遭遇したら、この順番で確認:
- 🔗 URL の確認(スペル、大文字小文字)
- 🔐 ログイン状態の確認
- 🔑 アクセス権限の確認
- 🌿 ブランチ名の確認(main vs master)
- 📁 ファイルパスの確認
- 📄 GitHub Pages 設定(該当する場合)
- 🔄 リポジトリの移動・削除の確認
- 🏢 Organization の制限確認
重要なポイント:
- 404 = 必ずしも削除されたわけではない
- プライベートリポジトリは権限がないと404
- GitHub Pages は設定が複雑
- API とブラウザでは挙動が異なる
トラブルが解決しない場合:
- GitHub Support に問い合わせ
- GitHub Community Forum で質問
- Stack Overflow で類似事例を検索
404エラーは frustrating ですが、原因を特定すれば必ず解決できます。この記事を参考に、冷静に一つずつ確認していきましょう!
コメント