Gitの「refusing to merge unrelated histories」の対処
結論を先に。共通の履歴を持たない2つのリポジトリを merge / pull しようとしたのが原因です。意図して統合するなら --allow-unrelated-histories を付ければ通ります。
fatal: refusing to merge unrelated histories原因
別々に git init されたリポジトリ同士など、共通の祖先コミットが無いものを統合しようとすると、Git は安全のために止めます。例えば、すでにコミットのあるローカルに、別途作られたリモートを後から pull したときに起きます。
対処
- 意図して統合するなら、許可オプションを付ける。
git pull origin main --allow-unrelated-histories- その後コンフリクトが出たら、ファイルを直して commit します。
git add .git commit- そもそも統合すべきでない(リモートを取り違えている)場合は、
git remote -vで接続先を見直します。
まとめ
- 原因は共通履歴を持たないリポジトリの統合
- 意図的なら
git pull --allow-unrelated-histories - コンフリクトは直して commit
- 統合すべきでないなら
git remote -vで接続先を確認する