Git deposunda eski bir dalı ana bilgisayara göre güncelleyin


123

Güncelliğini yitirmiş şubeye (yerel ve uzak) sahip bir Git havuzum var. Bu şubeyi ana şube ile güncel hale getirmek istiyorum ama bunu nasıl yapacağımı bilmiyorum. Ayrıca muhtemelen birçok birleştirme çatışması olacaktır.

Bu tarihi geçmiş şubeyi ana şubeyle aynı duruma nasıl getirebilirim veya güncelleyebilirim?


1
Eğer yerel şubede herhangi bir değişiklik yapmadıysanız, güncelliğini yitirmiş bir dalı bir Git deposundaki ana şubeye karşı nasıl güncelleyeceğinizi öğrenmek için buraya geldiyseniz, o zaman basitçe bir "git çekme" yapın
perişan

Yanıtlar:


152

Ne olursa olsun yapmanız gereken ana dalı güncelleyin.

Ardından şunlardan biri:

  1. Eski dalı ana dala karşı yeniden temel alın. Rebase sırasında birleştirme çakışmalarını çözün ve sonuç, ana ile temiz bir şekilde birleşen güncel bir şube olacaktır.

  2. Şubenizi ana olarak birleştirin ve birleştirme çakışmalarını çözün.

  3. Ana birimi şubenizle birleştirin ve birleştirme çakışmalarını çözün. Ardından, şubenizden ustaya birleştirme temiz olmalıdır.

Bunların hiçbiri diğerinden daha iyi değil, sadece farklı değiş tokuş modellerine sahipler.

Bence, daha sonraki okuyuculara daha temiz genel sonuçlar veren geri ödeme yaklaşımını kullanırdım, ancak bu kişisel zevkten başka bir şey değil.

Şubeyi yeniden bağlamak ve tutmak için şunları yaparsınız:

git checkout <branch> && git rebase <target>

Senin durumunda eski şubeye bir bak, o zaman

git rebase master 

ustaya karşı yeniden inşa ettirmek için.


1
@Andrew: git rebase:)
CharlesB

1
git checkout $branch && git rebase $target- senin durumunda, eski şubeyi kontrol et, sonra git rebase masteronu ustaya karşı yeniden inşa ettir.
Daniel Pittman

3
Deponuz halka açık mı? Herkese açıksa yeniden baz almak doğru mu?
event_jr

4
Uzak şubelerde yeniden ödeme kullanırken iyi bir öneri: bu uzak şube yeniden ödemesini ana şubeye karşı yalnızca kimse bu uzak şubede taahhütleri zorlamadığında yapın.
Dherik

Yeniden ödeme yapıldıktan sonra, -fseçeneği kullanarak değişiklikleri itmeniz gerekir . Geçmişi yeniden yazarken, güçlü bir baskı gerekir.
Opster Elasticsearch Ninja
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.