SORU
20 Ocak 2012, Cuma


Git push özelliği şube rebase sonra reddetti

TAMAM, bu basit git bir senaryo olduğunu düşündüm, neyi kaçırıyorum?

master dal ve feature bir şube var. master, master ** 7, ve sonra biraz daha biraz üzerinde bazı çalışmalar yapıyorum. Böyle bir şey iptalleri sipariş anlaşılacağı sözlük sırası () ile bitireceğim:

A--B--C------F--G  (master)
       \    
        D--E  (feature)

Sorun yok git push origin master tutmak için uzaktan master güncelleme, ne de git push origin feature (feature) sağlamak için bir uzaktan yedekleme için benim feature iş. Şu ana kadar iyiyiz.

Ama şimdi istiyorum master F--G iptalleri üzerine feature rebase, ben git checkout feature git rebase master. Hala iyi. Şimdi var:

A--B--C------F--G  (master)
                 \
                  D'--E'  (feature)

Sorun:yeni rebased feature yedekleme istediğim an git push origin feature ile dallıitme reddedilirağaç rebasing nedeniyle değişti. Bu sadece git push --force origin feature ile çözülebilir.

Bana lazım emin olmadan --force kullanarak nefret ediyorum. , Buna ihtiyacım var mı? Rebasingmutlakapush --forceful olmalıdır ertesi ima ediyorsunuz?

Bu özellik, şube başka geliştiriciler ile paylaşılmaz, bir sorunum yokde factozorla basarak, herhangi bir veri kaybetmeyeceğim, bu soru daha kavramsal.

CEVAP
20 Ocak 2012, Cuma


Asıl sorun git push varsayan uzak şube olabilir hızlı iletilen için senin yerel şube, tüm farkı arasında yerel ve uzak dalları yerel olan bazı yeni iptalleri sonunda gibi:

Z--X--R         <- origin/some-branch (can be fast-forwarded to Y commit)
       \        
        T--Y    <- some-branch

git rebase D E tamamlar ve yeni bir temel ve yeni taahhüt için uygulanır gerçekleştirdiğinizde oluşturulur. Böyle bir şey var rebase sonra demek oluyor

A--B--C------F--G--D'--E'   <- feature-branch
       \  
        D--E                <- origin/feature-branch

Bu durumda uzak şube hızlı iletilen yerel olamaz. Gerçi, teorik olarak yerel şube uzak (tabii ki bu durumda gerek yok), ama git push yapar gibi ileri sadece birleştirir birleştirilecek atar ve hata.

Ve --force seçeneği sadece uzaktan Şubesi durumunu görmezden gelmek ve bu ayar ne içine itiyorsun işlemek. git push --force origin feature-branch sadece yerel feature-branch 33 *geçersiz kılar.

Benim görüşüme göre, master özellik dalları ve kuvvet-itme rebasing onları uzak depoya geri TAMAM o dalda çalışan tek kişi sen olduğun sürece.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • Elefant Traks

    Elefant Trak

    5 HAZİRAN 2007
  • iNCH

    iNCH

    20 Temmuz 2009