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)
原因
ブランチなどに保護設定があり、直接pushできないmain
解決方法
- プルリクエストを通す
- 管理者に相談して保護設定を見直してもらう
まとめ:pushできない時は冷静に原因を切り分けよう
GitHubにpushできない時は、エラーメッセージをよく読み、認証・履歴・設定などの観点で一つずつ確認することが重要です。慣れてくれば、どの問題かすぐに見分けて対処できるようになります。

編集部