git pushできない原因と対処法!エラー別に解説!

git
\ Gitがよく分からない初心者の方へ /
さわっておぼえるGit入門
Gitがよく分からない初心者でも、
この1冊で基本操作を一通り理解できます。
👉 Amazonで詳しく見る
Kindle Unlimitedなら無料で読めます
▶ 無料で読む(Kindle Unlimited)

今回は、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できない際にはエラーを確認していきましょう。

コメント