💬

git push origin master 時のエラー対処方法

2022/10/14に公開

どうも、Yumaです。
パソコン上で作成したファイルをGitへ上げる際に、このようなエラーが発生しました。

mac:file yuma$ git push origin master
To https://github.com/yuma/yuma.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/yuma/yuma.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

このエラーが起きた流れとしては下記の通りです。

$git add -A
$git commit -m 'メッセージ'
$git push origin master
↑この時点でエラーが発生。

git push origin masterを実行した際にエラーが発生しました。
何度かこのエラーを起こしてしまったので、忘備録として記事にします。

git push origin master時のエラー原因

git push origin masterの段階でエラーが発生する際は以下の原因が挙げられます。

一つづつ詳しく説明します。

正しくgit addできてない

GitHub上にファイルを上げるには以下の手順が必要です。

$git add -A
$git commit -m 'メッセージ'
$git push origin master

そのため、git addができていないとエラーが発生します。
git addができているかを確認するために

$ git status

をターミナルに打ちましょう。
正しい手順を踏んでいればGitHubに上げることができます。

注意点として、初めてファイルをGitHub上に上げる際は手順が異なります。
もし、あなたが上げるファイルが初めてGitHubに上げるファイルである場合、こちらの記事をご参考ください。

https://zenn.dev/yuma_rails/articles/82e306a7fc13de

ローカルの内容が最新でない

僕はこの原因を修正することで正しくgit push origin masterを行うことができました。

今回のエラーですが、簡単に説明すると

ということ。

つまり、GitHub上のファイルとローカルファイル(パソコン上にあるファイル)の中身が一致していないということです。

もしあなたが、Gitへ上げたファイルを直接変更していた場合、このエラーが発生します。
僕はGitHubでREADME.mdファイルを変更していたため、今回のエラーが発生しました。

どうやって解決したら良いのか
解決方法は簡単で、ターミナル上で

$ git pull origin master

と打ちましょう。

このコマンドを実行することで、GitHub上の最新ファイルをローカルファイルに更新できます。

[chat face="Yuma-profile.jpg" name="Yuma" align="left" border="gray" bg="none" style="maru"]GitHubに上げたファイルとパソコン上にあるファイルの中身が同じになります。[/chat]

最新の状態になったのを確認後、再び

$ git push origin master

を行いましょう。

まだ、エラーが発生する場合は一度git addから行ってみましょう。

git push origin master時のエラーまとめ

この記事ではgit push 時のエラー解決方法をご紹介しました。
解決方法は簡単ですが、Git学習を始めたばかりだとつまづきやすいポイントです。
ぜひご参考ください。

また、依然とエラーが解決しない場合は、GitHubとファイルの紐付けが間違っている場合が考えれるので、一度確認してみましょう。

では!

Discussion