🐈‍⬛

ローカルとリモートが分岐してしまった場合の対処法

に公開

はじめに

GitHubでプッシュしようとした時にエラーが発生したため、まとめます。

問題

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

On branch main
Your branch and 'origin/main' have diverged,
and have 1 and 7 different commits each, respectively.

上記のエラーメッセージは以下のようなことを示していました

  • ローカルブランチ(PC上)にだけあるコミットが1つ
  • リモート(GitHub上のorigin/main)にだけあるコミットが7つ
  • 作業ディレクトリには未コミットの変更はなし(working tree clean

原因・解決方法

ローカルとリモートが分岐していたため、両方の変更を統合しました。リモートの7つのコミットを取り込み、自分の1つのコミットをその後に再適用しました。

git pull --rebase

なお、rebaseを使うことで履歴が綺麗に保たれます。

おわりに

このようなエラーはチーム開発の際によく発生するそうです(今回は個人開発でしたが)。

Discussion