İki şubem var: master ve dev
Ben dev dalından bir "özellik dalı" oluşturmak istiyorum.
Şu anda geliştirme şubesindeyim:
$ git checkout -b myfeature dev
... (biraz çalışma)
$ git commit -am "blablabla"
$ git push origin myfeature
Ama dallarımı görselleştirdikten sonra, anladım:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Demek istediğim, dal ff birleştirilmiş görünüyor ve nedenini anlamıyorum...
Neyi yanlış yapıyorum?
Lütfen bana başka bir daldan nasıl ayrıldığınızı ve özellik dalı için uzak depoya nasıl geri ittiğinizi açıklayabilir misiniz?
Tüm bunlar burada açıklanan gibi bir dallanma modelinde.
Gönderdiğiniz bağlantıdaki yöntemi beğendiyseniz, Git Flow'e bir göz atın.
Bu iş akışı için oluşturduğu bir dizi komut dosyasıdır.
Ama sorunuza cevap vereyim:
$ git checkout -b myFeature dev
MyFeature dalını dev'den oluşturur. İşinizi yapın ve sonra
$ git commit -am "Your message"
Şimdi değişikliklerinizi hızlı ileri sarma olmadan dev ile birleştirin
$ git checkout dev
$ git merge --no-ff myFeature
Şimdi değişiklikleri sunucuya aktarın
$ git push origin dev
$ git push origin myFeature
Ve nasıl isterseniz öyle göreceksiniz.
Git'teki mevcut dallardan herhangi birinden yeni bir dal oluşturmak istiyorsanız, seçenekleri takip etmeniz yeterlidir.
Önce yeni bir dal oluşturmak istediğiniz dalda değişiklik yapın/çıkış yapın. Örneğin, aşağıdaki gibi şubeleriniz varsa:
Dolayısıyla, "branch1" adlı dalın altında "subbranch_of_b1" adlı yeni bir dal oluşturmak istiyorsanız adımları izleyin:
Çıkış yapın veya "branch1" olarak değiştirin
git checkout branch1
Şimdi aşağıdaki komutu kullanarak "branch1" altında "subbranch_of_b1" adlı yeni şubenizi oluşturun.
git checkout -b subbranch_of_b1 branch1
Yukarıdakiler branch1 dalı altında subbranch_of_b1 adında yeni bir dal oluşturacaktır (HEAD şu anda onu işaret ettiği için yukarıdaki komuttaki branch1
in zorunlu olmadığını unutmayın, yine de farklı bir daldaysanız bunu kesinleştirebilirsiniz).
Şimdi subbranch_of_b1 ile çalıştıktan sonra bunu yerel veya uzaktan işleyebilir ve itebilir veya birleştirebilirsiniz.
subbranch_of_b1'i remote'a itin
git push origin subbranch_of_b1
Aynı anda dev
dalı üzerinde çalışın. Sizin senaryonuzda özellik dalı, geliştirme dalının ucundan ileriye doğru hareket eder, ancak geliştirme dalı değişmez. Düz bir çizgi olarak çizmek daha kolaydır, çünkü ileri doğru hareket olarak düşünülebilir. Dev üzerinde A noktasına ulaştınız ve oradan paralel bir yolda devam ettiniz. İki dal gerçekten birbirinden ayrılmamıştır.
Şimdi, birleştirmeden önce dev üzerinde bir commit yaparsanız, yine aynı commit'ten, A'dan başlayacaksınız, ancak şimdi özellikler C'ye ve dev B'ye gidecektir.
*-----*Dev-------*Feature
Versus
/----*DevB
*-----*DevA
\----*FeatureC