Bir Çekme İsteği başlatmak veya master'da yerel bir birleştirme taahhüdü gerçekleştirmek daha mı iyi?


13

GitHub'ı bir süredir kullanıyorum ve genellikle özellik dallarını zorlayıp daha sonra kendim birleştirdiğim bir Çekme İsteği başlattım. Şubeleri birleştirdiğim yeri takip etmeme yardımcı olduğunu buldum.

Ancak son zamanlarda Git'in nasıl çalıştığı hakkında giderek daha fazla okudum ve şubeleri birleştirdiğimde başvurmak için birleştirme taahhütlerini kullanabileceğimi fark ettim.

Öyleyse, bir özellik dalını master ile birleştirirken ne yapmalıyım: Master'da
bir birleştirme taahhüdü gerçekleştirin ve ardından yukarı doğru itin VEYA Yerel dalı itin ve bir Çekme İsteği başlatın?

2 kişilik bir ekip için Çekme Talepleri'ni okuyun - kendi taleplerimi birleştir? ve çalışma bir proje üzerinde 2 kişi ile akış nedir ve resmi repo veya Çatalımda bir daldan Meli Açık çekme istekleri? ama hiçbiri aradığım şeye cevap vermiyor.


2
Bu cevaplardan tam olarak ne hissediyorsunuz?
RubberDuck

Birincisi, çekme taleplerinin akran tarafından gözden geçirilmesi anlamına geldiğinden bahseder. İkincisi bir iş akışı sunar. Üçüncüsü ilişkili bile değil.
Ashhar Hasan

1
Buna bir En İyi Uygulamalar ya da iyi bir git geçmişi bakış açısını nasıl koruyacağım .
Ashhar Hasan

1
Bir PR'ı birleştirdiğimde bunu şubeyi yerel olarak birleştirerek yaparım. Bu, birleştirmenin temiz bir şekilde uygulandığından emin olmamı ve sonucu yayınlamadan önce testleri yeniden çalıştırmamı sağlıyor. GitHub'ın Çekme İstekleri sadece bu iş akışının resmileştirilmesidir, Git'in kendisinde bir PR kavramı yoktur.
amon

2
Bir PR birleştirildiğinde, master üzerinde birleştirme taahhüdü oluşturur, bu yüzden bunun git geçmişinde herhangi bir fark yarattığını düşünmüyorum. Bu yüzden komut satırı ve Github kullanıcı arayüzü arasındaki kişisel tercihinizin dışında birini veya diğerini kullanmanın bir nedeni olduğunu düşünmüyorum.
Ixrec

Yanıtlar:


16

Git-birleştirme mekanizması:
Kullanılması git merge featureana şube birleştirir halindeyken featureetmek masterve bir üretir merge-commit(şube hızla iletilir olamaz ise) git tarihinin. Yapılmaya zorlamak merge-commitiçin ile --no-ffseçeneğini kullanın merge.

Birleştirme Çekme İsteği mekanizması:
GitHub'da bir Çekme İsteği başlattığımızda, GitHub Issueinsanların birleşmeden önce Halkla İlişkiler'deki taahhütleri konuşabileceği ve tartışabileceği bir yer oluşturur . GitHub'da bir PR birleştirildiğinde, tam olarak aynı şeyi yapar git merge feature.

Ne yapmalıyım?
Dolayısıyla, tarih söz konusu olduğunda, ikisi arasında bir fark yoktur.
Katkıya gelince, katkıda bulunanların iki durum için farklı bir şeye sahip olmayacaklar. Aynı (eksi güzel küçük sohbet).

En İyi Uygulamalar:
Ve en iyi uygulamaları bulamadım ama mantık, depoda yalnızca tek bir kişi varsa PR'ların çok yararlı olmadığını söylüyor.

@lxrec ve @amon bu sonuca varmama yardımcı oldu.


5
İpucu: git merge"hızlı ileri alma" yapabiliyorsa bir birleştirme taahhüdü kaydedemeyebilir. Birleştirme taahhüdünü zorlamak için --no-ffseçeneği ekleyebilirsiniz .
amon

Githuib.com yerine yerel üzerinde git-merge yapmayı tercih ediyorum, eğer github.com'da böyle bir şeye sahip olsaydım doğrudan ana dalda yapmamayı tercih ederim, ilk önce olmayan ana olmayan dal almayı tercih ederim üretim için kullanılabilir hale getirmeden önce evreleme moduna ayarlanmalıdır.
Ciasto piekarz

5

As Ashhar söyledi, teknik ve tarih-bilge hiçbir fark yoktur. Küçük bir ekibi olan projeler için, bir PR oluşturmanın ek adımı yerine doğrudan birleştirmeyi tercih ederim. Ancak, bir özelliğin incelenmesi / geri bildirimi gerektiğinde veya bir WIP olduğunda ve birden fazla kişi üzerinde çalıştığında, bir PR açmaya ve PR'nin açıklamasına bir görev listesi eklemeye eğilimliyim.

git mergeMaster'da değişiklik yoksa hızlı ileri sarmanın kullanılabileceğini unutmayın , bu nedenle kullanmak isteyebilirsiniz git merge --no-ff. Yapmama eğilimindeyim.

Özet olarak, yalnızca tartışmaya ihtiyacınız olduğunda PR'ları kullanın. Aksi takdirde doğrudan birleştirin.


1
Ayrıca, bir çekme talebiyle ilgili tartışma ve geri bildirimlerin otomatik kaynaklardan ve ekip üyelerinden gelebileceğini belirtmek gerekir. Kurulmuş bir CI sunucunuz varsa, derleme ve test sonuçları verebilir, böylece master üzerinde derlemeyi bozan bir şeyi asla birleştiremezsiniz.
Eric
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.