環境構築
fatal: refusing to merge unrelated histories
無関係な履歴のマージが拒否された
こんな症状
共通の祖先がない2つのリポジトリをマージしようとした。--allow-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を追加せず作る、または clone してから作業する。
なぜ起きる?
GitHubでREADME付きのリポジトリを作り、ローカルでもgit initして別々に履歴を作ってしまったよ。2つの履歴に共通の起点がないので、Gitが「これは別物では?」と警告するんだ。
✕ エラーが起きるコード
git pull origin main
# fatal: refusing to merge unrelated histories✓ 直したコード
# --allow-unrelated-histories オプションを追加
git pull origin main --allow-unrelated-histories
# コンフリクトがあれば解決してcommit✅ 直ったか確認
pull が完了し、履歴が1つに結合されればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- refusing to merge unrelated histories — 関連のない履歴をマージしようとしている
- Permission denied (publickey) — SSH鍵が設定されていない
- .gitignoreが効かない・無視されない — 追跡済みファイルには効かない/パターンの書き方ミス
- Your branch is behind — リモートに新しいコミットがある
- error: pathspec '...' did not match any file(s) known to git — 指定したファイル・ブランチが見つからない
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から