今回は、gitでgit pushができないときの原因と対処法についてです。
gitを使っていると、次のようなエラーで困ることはありませんか。
- pushしようとするとエラーが出る
- リモートに反映されない
- permission denied と表示される
せっかく実装が終わったのにpushできないと焦りますよね。でも大丈夫です。
Gitのエラーメッセージは一見難解ですが、実は解決策を丁寧に教えてくれています。
この記事では、よくあるエラー別に原因と解決方法を分かりやすくまとめています。
結論:エラー文を見て原因を特定しよう
gitでpushできない原因はさまざまですが、重要なのは次のポイントです。
- エラー文に原因がそのまま書かれている
- パターンはほぼ決まっている
- 対処法もセットで決まっている
そのため、エラー別に理解しておけば迷わなくなります。
よくあるgit pushできない原因一覧
まずは代表的なエラーを一覧で確認しましょう。
| エラー内容 | 原因 |
|---|---|
| rejected(non-fast-forward) | リモートに新しい変更がある |
| permission denied | SSH設定や権限のミス |
| src refspec does not match any | ブランチ未作成 |
| failed to push some refs | 履歴の競合(他人の変更など) |
| remote origin not found | リモートURLの設定忘れ |
ここからは、それぞれ詳しく解説していきます。
rejected(non-fast-forward)の原因と対処法
git pushのときに、rejectedが出たときの対処法です。
原因
このエラーは、リモートリポジトリの内容がローカルより進んでいる場合に発生します。
つまり、下記のような場合です。
- 他の人が先にpushしている
- GitHub上で直接変更した
対処法
まずはリモートの変更を取り込みます。
git pull origin main
その後、再度pushします。
git push origin main
その際には、必要なコードを残して、プッシュするようにしましょう。

強制的にpush(-fを使用)すると、現在リモートにアップロードされている最新の履歴が消える可能性があります。
先にプッシュしたチームの人に相談するなどし、-f (force push)は慎重に使いましょう。
ポイント
- 無理にpushするのはNG
- 必ずpullして履歴を揃える
permission deniedの原因と対処法
次にPermission deniedでプッシュできないときです。
原因
このエラーは、認証または権限の問題です。
主な原因はこちらです。
- SSHキーが未設定
- アクセス権限がない
- HTTPSの認証ミス
対処法
このエラーの時には、SSHの設定など接続情報を見直してみましょう。
① SSHキーを確認
ssh -T git@github.com
② リモートURLを確認
git remote -v
③ HTTPSの場合はトークンを使用
GitHubではパスワード認証は使えません。
HTTPS接続したい場合には、GitHubにてトークンを発行しましょう。
ポイント
- GitHubはPersonal Access Tokenが必要
- SSH設定が一番安定
src refspec [xxx] does not match anyの原因と対処法
次にsrc refspec...エラーが出た場合の原因と対処法です。
原因
このエラーは、指定したブランチ([xxx])が存在しない場合に発生します。
よくあるケース:
- まだcommitしていない
- ブランチ名を間違えている
git push origin masterと実行したときに出る場合は、masterブランチがあるか確認しましょう。
メインのブランチはmainブランチになっていないでしょうか。
対処法
対処法については次の2点です。
① commitを行う
git add .
git commit -m "initial commit"
② ブランチを確認
git branch
ポイント
- commitが1つもないとpushできない
- ブランチ名ミスが多い
failed to push some refsの原因と対処法
次にfailed to push some refsが出た場合の原因と対処法です。
原因
このエラーは、履歴の不一致や競合で発生します。
対処法
git pull origin main
その後:
git push origin main
remote origin not foundの原因と対処法
最後にremote origin not foundが出た場合の原因と対処法です。
原因
リモートリポジトリが設定されていない状態です。
対処法
接続するリモートリポジトリを設定しましょう。
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
下記のコマンドで確認できます。
git remote -v
ポイント
- 初回push時によくある
- originの設定ミスに注意
それでもgit pushできないときのチェックリスト
最後に、解決しない場合のチェック項目です。
- ブランチ名は合っているか
- commitしているか
- リモートURLは正しいか
- 権限はあるか
- pullしているか
まとめ
gitでpushできないときは、以下を意識しましょう。
- エラー文をしっかり読む(調べる)
- パターンごとに対処する
- 無理にpushしない
しっかりと確認すれば、解決できます。
pushできない際にはエラーを確認していきましょう。

コメント