git rebase Origin/development
の間、gitから次のエラーメッセージが表示されます。
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
私のgitバージョンは2.9.0です。以前のバージョンでは正常に動作していました。
このリベースを継続して、新しいリリースで導入された強制フラグ付きの無関係な履歴を許可するにはどうすればよいですか。
デフォルトの振る舞いはgit 2.9から変更されました。
"git merge"は、デフォルトでは共通基盤を持たない2つのブランチをマージすることを許可していました。これは、作成された既存プロジェクトの真新しい歴史をもたらしました。 。 このコマンドをデフォルトでは許可しない を使用するように指示されました。エスケープハッチの
--allow-unrelated-histories
オプションを使用して、2つのプロジェクトが独立して開始された歴史をマージします。
詳しくは gitのリリース変更履歴 をご覧ください。
--allow-unrelated-histories
を使ってマージを強制することができます。
私の場合、gitリポジトリをリモートで追加した後の特に最初のpullリクエストでは、エラーはfatal: refusing to merge unrelated histories
だけでした。
--allow-unrelated-histories
フラグを使うことは、プルリクエストでこのように働きました:
git pull Origin branchname --allow-unrelated-histories
次のコマンドを試してください
git pull Origin master --allow-unrelated-histories
これであなたの問題は解決するはずです。
最初にローカルリポジトリを設定したときにこのエラーが発生しました。それから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
これには、次のコマンドを入力してください。
git pull Origin branchname --allow-unrelated-histories
例えば。:
git pull Origin master --allow-unrelated-histories
参照:
私は同じ問題を抱えていました。これを試して:
git pull Origin master --allow-unrelated-histories
git Push Origin master
git pull --rebase development
を試す
他のすべての回答は実際には質問に回答しているわけではないので、関連する質問について、 この回答 からヒントを得た解決策がここにあります。
そのため、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.
git pull Origin <branch> --allow-unrelated-histories
あなたはVimにルーティングされますEdit
git Push --set-upstream Origin <branch>
私は同じ問題を抱えていました。問題はこれを妨げるものが遠隔にあります。最初にローカルレポを作成しました。私は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
私もこれに苦労しましたが、回避策を見つけることができました。
上記のエラーが発生した場合は、マージコミットを選択してからリベースを続けてください。
git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue
これは私のために働いた:
git Push Origin master --force