GitHubにpushできない原因と解決法

GitHubにpushできないときの主な原因とその対処法を解説します。認証エラー、リモートの変更との衝突、設定ミスなど、初心者がつまずきやすいトラブルをわかりやすく解決。

GitHubにpushできないときに確認すべきポイント

GitHubへの

git push
が失敗する原因はさまざまですが、主に以下のようなパターンに分類できます。


ケース①:認証エラー(Permission denied)

メッセージの例

Permission denied (publickey).
fatal: Could not read from remote repository.

原因

  • SSHキーがGitHubに登録されていない
  • HTTPS利用時、パスワードの代わりにトークンが必要(2021年以降)

解決方法

SSHの場合:

  • SSHキーを生成し、GitHubに公開鍵を登録
ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub

HTTPSの場合:

  • Personal Access Token(PAT)を生成して使用
  • コマンドラインでの認証:
git push https://[username]@github.com/ユーザー名/リポジトリ名.git

ケース②:リモートの履歴と競合している

メッセージの例

! [rejected]        main -> main (non-fast-forward)

原因

  • 他の人がすでにpushしており、自分の履歴と衝突している

解決方法

git pull origin main --rebase

その後:

git push origin main

※ コンフリクトが発生した場合は、手動で解決後

git rebase --continue


ケース③:リモートリポジトリの設定ミス

原因

  • リモートURLが間違っている、または設定されていない

確認方法

git remote -v

解決方法

リモートURLの再設定:

git remote set-url origin https://github.com/ユーザー名/リポジトリ名.git

ケース④:ファイルサイズ制限に引っかかっている

原因

  • GitHubの1ファイル100MB制限に達している

解決方法

  • 大容量ファイルはGit LFSを使う
git lfs install
git lfs track "*.zip"
git add .gitattributes

ケース⑤:ブランチの保護設定(Protected Branch)

原因

  • main
    ブランチなどに保護設定があり、直接pushできない

解決方法

  • プルリクエストを通す
  • 管理者に相談して保護設定を見直してもらう

まとめ:pushできない時は冷静に原因を切り分けよう

GitHubにpushできない時は、エラーメッセージをよく読み、認証・履歴・設定などの観点で一つずつ確認することが重要です。慣れてくれば、どの問題かすぐに見分けて対処できるようになります。

編集部

編集部