【Xcode/Git】The remote repository rejected commits.エラーの解決法!

この記事からわかること

  • Xcode発生したエラー
  • XcodeからGitHubpushする先に起きたエラーの原因解決法
  • The remote repository rejected commits.」とは?
  • Xcode Make sure you have permission to push to the remote repository and try again.」とは?
  • Your branch is ahead of 'origin/main' by 1 commit.とは?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

XcodeからiOSプロジェクトをGitHubへプッシュする際にエラーが発生し、プッシュすることができませんでした。

エラー:The remote repository rejected commits.

プッシュしようとした際に以下のようなエラーがポップアップに表示されました。

The remote repository rejected commits.

Xcode Make sure you have permission to push to the remote repository and try again.

翻訳してみるとどうやらリモートリポジトリへのアクセスがうまく行っていないようです。

リモート リポジトリがコミットを拒否しました。 

Xcode リモート リポジトリにプッシュする権限があることを確認してから、もう一度お試しください。

Xcodeからではエラーの詳細が分からないのでターミナルからコマンドを使用してプッシュしてみます。

$ git push origin main                             
Enumerating objects: 58, done.
Counting objects: 100% (58/58), done.
Delta compression using up to 8 threads
Compressing objects: 100% (35/35), done.
Writing objects: 100% (38/38), 19.30 KiB | 19.30 MiB/s, done.
Total 38 (delta 15), reused 24 (delta 3), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 12 local objects.
remote: fatal error in commit_refs
To https://github.com/amefure/FuluLog.git
 ! [remote rejected] main -> main (failure)
error: failed to push some refs to 'https://github.com/amefure/FuluLog.git'

ここでも発生するエラーは似たようなものでした。

原因

今のGitの状態をチェックします。まずはブランチを確認します。

$ git branch
* main
$ git branch -vv      
* main XXXXXX XX [origin/main: ahead 1] コミットメッセージ

続いてstatusを確認します。

$ git status           
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	
nothing added to commit but untracked files present (use "git add" to track)

Your branch is ahead of 'origin/main' by 1 commit.:あなたのブランチは 'origin/main' よりも 1 コミット進んでいますと出ていてこれが怪しそうです。

解決方法

解決するにはpushの引数にローカルブランチ名とリモートブランチ名を渡して、リモートブランチ名を明示的に指定してプッシュする方法を取ればOKでした。

$ git push origin [ローカルブランチ名]:[リモートブランチ名]
$ git push origin main:main                            
Enumerating objects: 58, done.
Counting objects: 100% (58/58), done.
Delta compression using up to 8 threads
Compressing objects: 100% (35/35), done.
Writing objects: 100% (38/38), 19.30 KiB | 19.30 MiB/s, done.
Total 38 (delta 15), reused 24 (delta 3), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 12 local objects.
To https://github.com/amefure/FuluLog.git
  XXXXXX..XXXXXX  main -> main

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index