0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ハッカソン個人備忘録⑬:リモートが先に進んでいた!Gitで push に失敗した話を、忘れないように記録しておく

Posted at

はじめに

Gitを使って開発をしていると、pushやpullでエラーに遭遇することがあります。

特にチーム開発では、自分の知らないうちにリモートに変更が加わっていることも。

今回は、Git pushが失敗した状況と、その復旧方法についてメモとしてまとめました。

書こうと思ったきっかけ

実際の開発中にGit pushが失敗し、原因や対処法を探すのに時間がかかったため、今後同じようなトラブルに遭遇したときにスムーズに対応できるようにするためです。また、同じようなエラーに悩む人の参考にもなればと思い、記録を残すことにしました。

状況の整理

開発中に以下のようなGit操作を行った際、pushが失敗しました。

git push origin main

表示されたエラー:

Updates were rejected because the remote contains work that you do not have locally.

つまり、リモートに自分のローカルにはない変更があるということ。
これは、他の開発者や別の環境からリモートに先にpushされていた場合によくある現象です。


実行したコマンドとその意味

コマンド 説明
git add . すべての変更をステージング(準備)
git commit -m "page.tsxの修正" page.tsx の修正をコミット
git push origin main 失敗:リモートとの差分が原因で拒否された
git remote -v リモートURLの確認(問題なし)
git stash 作業中の変更を一時退避(※今回は何もなかった)
git pull origin main 失敗:リモートとの分岐をどう統合するか未設定でエラー
git config pull.rebase false 解決の鍵:pull動作を「マージ」に設定
git pull origin main 成功:ローカルとリモートの履歴をマージ
git stash pop 一時退避していた変更を戻す(※内容なし)
git push origin main 成功:pushが通った!

解決の決め手は?

git config pull.rebase false

この1行で、Gitが「リモートとの差分をマージで統合する」と判断できるようになり、git pull のエラーが解消されました。
その後の git push もスムーズに成功。


まとめ

ここまで読んでいただきありがとうございました!最後に簡単に箇条書き程度で残しておきます。

  • Pushできない原因は「リモートとの差分」だった。
  • 解決には git config pull.rebase false でpull動作を明示。
  • 今後に備えて --global オプションで設定するのがおすすめ。
  • トラブル時は焦らず、エラーメッセージを読み解くことが重要。
  • 同じ現象に出会ったときのために、記録を残しておくと安心です。
0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?