2017-10-05 116 views
5

Bir üst akış dalı yeniden oluşturulduktan sonra, bir dal orijinal dallanmasının nasıl olduğunu nasıl bulabilirim?Yeniden oluşturmak için ortak ataları nasıl bulabilirim?

Sık sık origin/master çektiğinde birkaç ilgili şube rebase gerekir:

Before rebasing b1: 

O1 - O2 - O3 - O4 - O5 - O6 <=master 
     \ 
     G - H - I <=b1 
       \ 
        T - U - V <=b2 

After rebasing b1: 

O1 - O2 - O3 - O4 - O5 - O6 <=master 
     \     \ 
     G - H - I   G' - H' - I' <=b1 
       \ 
        T - U - V <=b2 

Rebasing b1 çatışma kararlarının çok gerekli. b2, yeniden oluştururken aynı çakışmaların çözümlenmesini önlemek için, orijinal olarak I, yani I? vardı Branch1 tüm orijinal çatışmaları yeniden çözmek için


rebase güçler beni:

$ git checkout b2 
$ git rebase # crap! 

yapmak istediğim, gerçekleşmesini önlemek için bu kapalı dallı orijinal üzerine b2rebase işlemek olduğunu I. Uygulamak istediğim taahhütler kümesi I..b2, yani için rebase (artık bir şube olmasa bile) kullanmak istiyorum. Şimdi --onto b1'u belirtmeliyim (aksi halde gitmelerimi zaten sahip olduğum şey olan I'a uygulayacağım).

git rebase --onto b1 I 

Benim soru : nasıl I bulabilirim?

cevap

5

Yapmanıza gerek yok. Git, bu işlemi sizin için bir sonraki adımı kullanarak çözebilir. Sadece --fork-point bayrağını git rebase'a, örn. git rebase --fork-point b1.

Bunu el ile yapmanız gerekiyorsa (ör. Eski bir Git sürümünü kullanıyor olmanız), yalnızca kendiniz için başvuruda bulunabilirsiniz. Ya git log -g b1 veya git reflog show b1, size b1 için reflog gösterecektir ve bunu, son işlemin rebase'den önce ne olduğunu anlamak için kullanabilirsiniz.

+0

Bu, sorunumu açıklayabilir: "birincil" çalışma grubuma bağlı .git dizinlerinde birden fazla çalışma dizinini kullanıyorum. Yani b1 ile workdir için reflog'lar kontrol edildi ve b2 ile kontrol edilen çalışma listesi ayrı. "b1" yi yeniden oluşturduktan hemen sonra b2'yi yeniden kaydetmezsek (veya b2'yi güncellemeye başlamadan önce birden çok kez yeniden rebue edilir), doğru yanıtı bulmak için el yordamıyla bakmak daha da zorlaşır. . Sanırım, iki uzmanı çapraz referansta bulabilirim, ama, "usta" olmayan ortak bir taahhüt arıyorlar mı? – mgiuffrida

+0

"b1" değerini yeniden oluşturmak için kullandığınız çalışma dizini ne olursa olsun, yalnızca bu direkteki referansı kontrol edin. –