こんな困惑中のあなたに向けて、解決策をお届けします。
こんにちは、セイタです。
先日、Gitにコミットしたあとにプッシュが上手く行かずに困ったという経験をしたので、解決方法を紹介しておきたいと思います。
意外と起きやすい現象のような気がしているので、自分の忘備録としてもまとめておこうと思うので、Git初心者の方に参考にしていただければ幸いです。
原因としては、本番環境とローカル環境の間に差が生まれてしまっていることが原因になっています。
ぜひ本記事を参考に開発の知識を増やして、解決力の知恵を蓄えてくださいね!
【Git】コミット後のプッシュが上手く行かないときの解決方法!【1分で解決】
状況としては、こちら...
- Gitの環境は整っている
- コミットまではできてステージング済み
- ローカル環境で開発してGitにプッシュしたい
Gitでコミット後のプッシュができない原因
ぼくが編集したファイルをコミット・プッシュしようとしたところ、プッシュの段階でこのようなエラーが発生しました。
user@user-PC MINGW64 ~/ExamplePass (master) $ git push To GitPass ! [rejected] master -> master (fetch first) error: failed to push some refs to 'GitPass' 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. user@user-PC MINGW64 ~/GitPass (master) $
プッシュ時のコマンドとしては、『git push origin master』を打ち込んだところエラーとなりました。
英語の羅列が表示されて最初はよくわからなかったのですが『rejected』という文字が4行目にあるので、恐らく跳ね返されている状況なんだろうなーという予想のもとエラー内容について調査してみたところ、Gitのディレクトリとローカルのディレクトリの整合性が整っていないとのこと。
整合性を整える方法として、『git pull』を使用すれば解決できるという情報を掴んだので、実際に行ってみました。
『git pull』を行うことで本番環境との整合性を整える
『git pull』は簡単に解説すると、本番環境の最新情報をローカルの環境に落とし込むコマンドです。
そのため、少し考えればわかったことなのですが、『本番環境の最新の情報に合わせる=ローカル環境が本番環境と同一になる』ということなので、解決するのも頷けました。
ちなみに、『git pull』を行うタイミングとしては、プッシュしたいと思っている所で止まっていると思いますが、特にホームディレクトリに戻らなくても大丈夫です。
そのままの状態で『git pull』を行えば整合性を整えてくれます。
『git status』でコミットされているか確認!
念の為、『git status』で現在のコミット状況がどうなっているのか確認しておきましょう。
恐らく、先程コミットした状況がそのまま残っている状態だと思うので、コミットされていることが確認できたら、そのまま『git push origin master』を実行すれば解決です。
もし、コミットした状態が保たれていない状態の場合は、再度コミットしたいファイルを『git add .』を打ち込んだ後、『git commit』でコミットして確認しましょう。
『git push origin master』でプッシュ!!
最後にここまでの手順をまとめておきましょう。
git pushが上手く行かないときの解決方法
- git add .(ステージングエリアへ)
- git commit (コミット)
- git push origin master (今回は失敗)
- git pull (整合性を整える)
- git status (コミット状況を再確認)
- git push origin master (最終プッシュ)
これらの手順をそのまま行って貰えれば、解決できるかと思います。
原因としては、繰り返しになりますが本番環境とローカル環境のファイルやディレクトリの整合性が整っていないためのエラーです。
もし、次回も同じようなエラーが別のプロジェクト等で発生したときは、今回の事象を思い出してサクッと解決できるようになっておきましょう!