it-swarm-tr.com

Git iadesiyle ilgisiz geçmişlerini birleştirmeyi reddediyor

git rebase Origin/development sırasında git'den aşağıdaki hata mesajı geliyor:

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

Git sürümüm 2.9.0. Önceki sürümde iyi çalışmak için kullanılır.

Yeni sürümde tanıtılan zorunlu bayrakla ilgisiz tarihlere izin vererek bu yeniden yüklemeye nasıl devam edebilirim?

1566

Varsayılan davranış git 2.9'dan beri değişmiştir:

"git birleştirme", varsayılan olarak ortak temeli olmayan iki şubenin birleştirilmesine izin vermek için kullanılır; bu, mevcut bir projenin yepyeni bir geçmişine yol açar ve ardından, mevcut bir projeye gereksiz bir paralel geçmişin birleştirilmesine izin veren, şüphesiz bir bakıcı tarafından çekilir. . Komutun, varsayılan olarak buna izin vermemesi öğretildi , kaçınılmaz bir hatch --allow-unrelated-histories seçeneğiyle, yaşamlarına bağımsız olarak başlayan iki projenin geçmişini birleştiren nadir bir olayda kullanılmak üzere.

Daha fazla bilgi için git sürüm changelog 'a bakın.

Birleşmeye zorlamak için --allow-unrelated-histories kullanabilirsiniz.

2023
blue112

Benim durumumda, uzaktan bir git repo ekledikten sonra her özellikle ilk çekme isteğinde hata sadece fatal: refusing to merge unrelated histories oldu.

--allow-unrelated-histories flag kullanmak, bu şekilde çekme isteği ile çalıştı:

git pull Origin branchname --allow-unrelated-histories

854
adi

Aşağıdaki komutu deneyin

git pull Origin master --allow-unrelated-histories

bu probleminizi çözmeli.

491
Ogbonna Vitalis

Önce yerel bir depo kurduğumda bu hatayı aldım. Sonra Github'a gittim ve yeni bir depo oluşturdum. Sonra koştum

git remote add Origin <repository url>

İtme/çekme çalıştığımda, aynı fatal: unrelated_histories hatasını aldım. İşte nasıl düzelttim:

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

Bunun için komutu girin:

git pull Origin branchname --allow-unrelated-histories

Örneğin.:

git pull Origin master --allow-unrelated-histories

Referans:

Github ilgisiz tarih sorunu

126
VIKAS KOHLI

Bende de aynı problem vardı. Bunu dene:

git pull Origin master --allow-unrelated-histories 

git Push Origin master
89
Aamir Kalimi

git pull --rebase development öğesini deneyin

38
Daniel petrov

Diğer tüm cevaplar aslında soruyu cevaplamadığından, işte ilgili soruya bu cevap tarafından ilham alan bir çözüm.

Böylece hatayı git rebase yaparken elde edersiniz:

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

Bu hata aslında yeniden oluşturmayı iptal etmiyor, ancak şimdi bunun tam ortasındasınız:

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

Yani şimdi elle birleştirmeyi yapabilirsiniz. Orijinal birleştirme taahhüdünün ana taahhütlerini öğrenin:

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

    test merge commit

İki birleştirme ebeveyninden hangisinin mevcut olanla birleştirildiğini (muhtemelen ikinci olan, git log 222222222 ile doğrulayın) bulun ve ardından orijinal birleştirme taahhüdünün taahhüt mesajını kopyalayarak elle birleştirin:

$ 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

Bir Vim Düzenlemeye yönlendirileceksiniz

  • Onay mesajı ekle
  • Sonra VIM'den çıkmak için Ctrl + X tuşlarına basın.
  • git Push --set-upstream Origin <branch>
23
Las Lemieux

Ben de aynı problemi yaşadım. Sorun uzaktaki bu önleyen bir şey vardı. İlk önce yerel bir repo oluşturdum. Yerellerime bir LİSANS ve README.md ekledim ve taahhüt ediyorum. Sonra uzak bir depo istedim, böylece Github'da bir tane yarattım. Burada, "Bu depoyu bir README ile başlat" , uzaktan da bir README.md oluşturdu.

Yani şimdi koştuğumda

git Push --set-upstream Origin master

Bende var:

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.

Şimdi bunun üstesinden gelmek için yaptım

git pull Origin master

Hangi hatayla sonuçlandı

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

Denedim:

git pull Origin master --allow-unrelated-histories

sonuç:

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.

Çözüm:
Uzak depoyu kaldırdım ve yeni olarak derecelendirdim (yalnızca README öğesinin kaldırılması işe yarayabilirdi) ve bundan sonra çalıştı

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

Bununla da mücadele ettim ama bir geçici çözüm bulmayı başardım.

Yukarıdaki hatayla karşılaştığınızda, yalnızca birleştirme işleminin gerçekleştirileceği kiraz seçimini yapın ve yeniden oluşturmaya devam edin:

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

Bu benim için çalıştı:

git Push Origin master --force
0
Aniket Patil