web-dev-qa-db-ja.com

無関係な履歴をリベースにマージすることを拒否しているGit

git rebase Origin/developmentの間、gitから次のエラーメッセージが表示されます。

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

私のgitバージョンは2.9.0です。以前のバージョンでは正常に動作していました。

このリベースを継続して、新しいリリースで導入された強制フラグ付きの無関係な履歴を許可するにはどうすればよいですか。

1566

デフォルトの振る舞いはgit 2.9から変更されました。

"git merge"は、デフォルトでは共通基盤を持たない2つのブランチをマージすることを許可していました。これは、作成された既存プロジェクトの真新しい歴史をもたらしました。 。 このコマンドをデフォルトでは許可しない を使用するように指示されました。エスケープハッチの--allow-unrelated-historiesオプションを使用して、2つのプロジェクトが独立して開始された歴史をマージします。

詳しくは gitのリリース変更履歴 をご覧ください。

--allow-unrelated-historiesを使ってマージを強制することができます。

2023
blue112

私の場合、gitリポジトリをリモートで追加した後の特に最初のpullリクエストでは、エラーはfatal: refusing to merge unrelated historiesだけでした。

--allow-unrelated-historiesフラグを使うことは、プルリクエストでこのように働きました:

git pull Origin branchname --allow-unrelated-histories

854
adi

次のコマンドを試してください

git pull Origin master --allow-unrelated-histories

これであなたの問題は解決するはずです。

491
Ogbonna Vitalis

最初にローカルリポジトリを設定したときにこのエラーが発生しました。それからgithubに行き、新しいリポジトリを作成しました。それから私は走った

git remote add Origin <repository url>

プッシュ/プルしようとしたときに、同じfatal: unrelated_historiesエラーが発生しました。これを修正する方法は次のとおりです。

git pull Origin master --allow-unrelated-histories
git merge Origin origin/master
... add and commit here...
git Push Origin master
202
Adithya Bhat

これには、次のコマンドを入力してください。

git pull Origin branchname --allow-unrelated-histories

例えば。:

git pull Origin master --allow-unrelated-histories

参照:

Githubの無関係な歴史問題

126
VIKAS KOHLI

私は同じ問題を抱えていました。これを試して:

git pull Origin master --allow-unrelated-histories 

git Push Origin master
89
Aamir Kalimi

git pull --rebase developmentを試す

38
Daniel petrov

他のすべての回答は実際には質問に回答しているわけではないので、関連する質問について、 この回答 からヒントを得た解決策がここにあります。

そのため、git rebaseを実行しているときにエラーが発生します。

$ git rebase Origin/development
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

このエラーは実際にはリベースを取り消すものではありませんが、現在はその途中です。

$ git status
interactive rebase in progress; onto 4321beefdead
Last command done (1 command done):
   pick 1234deadbeef1234deadbeef test merge commit

だから今あなたは手動でマージをすることができます。元のマージコミットの親コミットを見つけます。

$ git log -1 1234deadbeef1234deadbeef
commit 1234deadbeef1234deadbeef
Merge: 111111111 222222222
Author: Hans Dampf
Date:   Wed Jun 6 18:04:35 2018 +0200

    test merge commit

2つのマージ親のうちどちらが現在のマージ親にマージされたものであるかを調べ(おそらく2番目のマージ親、git log 222222222で検証します)、次に元のマージコミットのコミットメッセージをコピーして手動でマージを行います。

$ git merge --allow-unrelated 222222222 --no-commit
Automatic merge went well; stopped before committing as requested
$ git commit -C 1234deadbeef1234deadbeef
[detached HEAD 909af09ec] test merge commit
 Date: Wed Jun 6 18:04:35 2018 +0200
$ git rebase --continue
Successfully rebased and updated refs/heads/test-branch.
28
cdauth
git pull Origin <branch> --allow-unrelated-histories

あなたはVimにルーティングされますEdit

  • コミットメッセージを挿入
  • 次にCtrl + Xを押してVIMを終了します
  • git Push --set-upstream Origin <branch>
23
Las Lemieux

私は同じ問題を抱えていました。問題はこれを妨げるものが遠隔にあります。最初にローカルレポを作成しました。私はLICENSEとREADME.mdを私のローカルとコミットに追加しました。それから私はGithubでそれを作成したので、私はリモートレポを望んでいました。 ここで私は "READMEでこのリポジトリを初期化する"をチェックするのを間違えました これはリモートでもREADME.mdを作成しました。

だから今私が走ったとき

git Push --set-upstream Origin master

私は得た:

error: failed to Push some refs to 'https://github.com/lokeshub/myTODs.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes 
(e.g. hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git Push --help' for details.

これを克服するために今私はしました

git pull Origin master

以下のエラーが発生しました

From https://github.com/lokeshub/myTODs
branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories**

私は試した:

git pull Origin master --allow-unrelated-histories

結果:

From https://github.com/lokeshub/myTODs
 * branch            master     -> FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed; 
fix conflicts and then commit the result.

溶液:
リモートレポジトリを削除し、新しく作成しました(READMEを削除するだけでうまくいくと思います)。

git remote rm Origin
git remote add Origin https://github.com/lokeshub/myTODOs.git
git Push --set-upstream Origin master
18
Lokesh Purohit

私もこれに苦労しましたが、回避策を見つけることができました。

上記のエラーが発生した場合は、マージコミットを選択してからリベースを続けてください。

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue
11
el_tigro

これは私のために働いた:

git Push Origin master --force
0
Aniket Patil