Firmamız şu anda basit bir gövde / sürüm / düzeltmeler dallanma modeli kullanıyor ve şirket veya geliştirme süreci için hangi dallanma modellerinin en iyi çalıştığı konusunda tavsiye istiyor.
İş akışları / dallanma modelleri
Aşağıda gördüğüm üç ana açıklama var, ancak bunlar kısmen birbirleriyle çelişiyor veya karşılaştığımız sonraki sorunları (aşağıda açıklandığı gibi) çözmek için yeterince ilerlemiyorlar. Böylece ekibimiz şimdiye kadar o kadar da iyi çözümler üretmemektedir. Daha iyi bir şey mi yapıyorsun?
Yeniden birleştirme ve yeniden birleştirme (sıralı geçmişe karşı karışık)
Meli bir
pull --rebase
veya görevin kadar ana hat için geri birleştirilmesi ile bekleme işlemi tamamlandıktan? Şahsen, bir görevin hangi temelde başlatıldığı ve bittiğini görsel bir şekilde koruduğu için birleşmeye eğilimliyim ve hattamerge --no-ff
bu amaç için tercih ederim . Ancak başka dezavantajları var. Ayrıca birçoğu birleşmenin yararlı özelliğini fark etmedi - değişmeli değil (bir konu dalını master ile birleştirmek, master'ı konu dalıyla birleştirmek anlamına gelmez).Doğal bir iş akışı arıyorum
Bazen hatalar olur, çünkü prosedürlerimiz basit kurallarla belirli bir durumu yakalamaz. Örneğin, daha önceki sürümler için gerekli olan bir düzeltme, elbette, gerekli tüm branşların yukarı akış yönünde birleştirilebilmesi için yeterince aşağı akışa dayandırılmalıdır (bu terimlerin kullanımı yeterince açık mı?). Bununla birlikte, bir düzeltme, geliştiricinin daha aşağı akışa yerleştirilmesi gerektiğini fark etmeden önce ana hale getirir ve bu zaten itilmişse (daha da kötüsü, birleştirilmiş veya buna dayalı bir şey), kalan seçenek kiraz toplamadır. ilişkili tehlikeleri. Bunun gibi hangi basit kuralları kullanıyorsunuz?Ayrıca bu, bir konu dalının diğer konu dallarını hariç tutmaya yönelik garipliğini de içerir (ortak bir taban çizgisinden dallanmış oldukları varsayılarak). Geliştiriciler, yeni yazdıkları kodun artık orada olmadığı gibi bir duyguya başlamak için bir özelliği bitirmek istemiyorlar
Birleştirme çakışmaları (kiraz toplama nedeniyle) oluşturmaktan nasıl kaçınılır?
Birleştirme çatışması oluşturmanın kesin bir yolu, dallar arasında kiraz toplamaktır, bir daha asla birleştirilemez mi? Her iki branşta da aynı taahhüdü geri döndürmek (nasıl yapılır?) Uygulamak muhtemelen bu durumu çözebilir mi? Bu, büyük ölçüde birleştirme tabanlı iş akışı için zorlamaya cesaret etmememin bir nedenidir.
Topikal dallara nasıl ayrılır?
Konu dallarından tamamlanmış bir entegrasyon oluşturmanın harika olacağını biliyoruz, ancak genellikle geliştiricilerimiz tarafından çalışmak açıkça tanımlanmadı (bazen "etrafta alay etmek" kadar basit) ve bazı kodlar zaten "çeşitli" bir konuya girmişse, yukarıdaki soruya göre oradan tekrar çıkartılamaz mı? Konu dallarınızı tanımlamak / onaylamak / mezun etmek / serbest bırakmak için nasıl çalışıyorsunuz?
Kod inceleme ve mezuniyet gibi uygun prosedürler elbette güzel olurdu.
Ama biz bunu idare edecek kadar karışık olan şeyleri tutamayız - herhangi bir öneriniz var mı? entegrasyon dalları, çizimler?
İlgili soruların listesi aşağıdadır:
- Dağıtılan uygulamaların düzeltilebilir olmasına izin vermek için bazı iyi stratejiler nelerdir?
- Şirket içi geliştirme için Git kullanımı için iş akışı açıklaması
- Kurumsal Linux çekirdek gelişimi için Git iş akışı
- Geliştirme kodunu ve üretim kodunu nasıl koruyorsunuz? ( bu PDF için teşekkürler !)
- git yönetimi serbest bırakır
- Git Cherry-pick ve Birleştirme İş Akışı
- Birden fazla taahhüt kiraz nasıl seçilir
- Seçmeli dosyaları git-merge ile nasıl birleştirirsiniz?
- Kiraz bir dizi taahhüt nasıl seçilir ve başka bir dalda nasıl birleştirilir
- ReinH Git İş Akışı
- Değişiklik yapmak için git iş akışı, hiçbir zaman başlangıç noktasına geri itmeyeceksiniz
- Kiraz toplama birleştirme
- Birleşik işletim sistemi ve özel kod için uygun Git iş akışı?
- Git ile Projeyi Koruma
- Git neden dosya değişikliklerini değiştirilmiş bir üst öğe / ana öğe ile birleştiremiyor?
- Git Dallanma / Yeniden Temel Oluşturma İyi Uygulamaları
- "Git pull --rebase" beni ne zaman belaya sokacak?
- DVCS büyük ekiplerde nasıl kullanılır?
Ayrıca , Plastik SCM'nin görev odaklı geliştirme hakkında ne yazdığını kontrol edin ve Plastik sizin seçiminiz değilse, nvie'nin dallanma modelini ve destekleyici komut dosyalarını inceleyin .