はじめに
Gitの操作に慣れていないため、同じミスを繰り返さないように記録として残します。
問題
pushをしようとしたら以下のエラーが発生しました。
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to 'github.com:ユーザー名/リポジトリ名.git'
解決方法
以下のコマンドを実行したところpushできました。
git pull --rebase origin main
git push origin main
git pull --rebase origin mainコマンドは、リモートの変更(README.md)をまず取得し、その上にローカルの変更を再適用(リベース)します。これにより履歴の不一致が解消され、その後のgit pushが成功するようになりました。
原因
GitHubで新しくリポジトリ作成時に「Add a README file」オプションを選択したことで、リモートリポジトリにはREADME.mdファイルが既に存在していました。しかし、このファイルをローカルリポジトリに反映する前にローカルリポジトリのファイルをコミット・プッシュしようとしたため、履歴の不一致が生じてエラーが発生しました。
おわりに
GitHubで新しくリポジトリ作成時に「Add a README file」を選択した場合、リモートリポジトリには既にファイルが存在している状態になります。そのため、ローカルリポジトリからプッシュする前にリモートの変更を取り込むようにする。
参考