環境構築
refusing to merge unrelated histories
関連のない履歴をマージしようとしている
こんな症状
git pullで「refusing to merge unrelated histories」と表示される。新規リポジトリの設定で起きやすいよ。
まず試す
git pull origin main --allow-unrelated-histories を実行する。
env
git pull origin main --allow-unrelated-historiesこれで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓GitHubで作るときREADMEを追加した
→ git pull origin main --allow-unrelated-histories で履歴を結合する。 - ✓結合時にコンフリクト
→ 該当ファイルを解決して commit する。 - ✓今後避けたい
→ 空のリポジトリ(README追加なし)を作ってから push する。
なぜ起きる?
ローカルとリモートのリポジトリに共通の祖先コミットがないよ。GitHubで新規リポジトリを作るときにREADMEを追加すると、ローカルのgit initとは別の履歴が作られるんだ。Gitは関連のない2つの履歴をマージすることをデフォルトで拒否するよ。
✕ エラーが起きるコード
$ refusing to merge unrelated histories
# エラー発生✓ 直したコード
# git pull origin main --allow-unrelated-histories を実行する。✅ 直ったか確認
pull が完了し、push もエラーなく通ればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- fatal: refusing to merge unrelated histories — 無関係な履歴のマージが拒否された
- error: Your local changes would be overwritten by checkout / merge — コミットしていない変更が消えるのをGitが防いでいる
- Your branch is behind — リモートに新しいコミットがある
- error: failed to push some refs — pushが拒否された
- Permission denied (publickey) — SSH鍵が設定されていない
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から