Her geliştirici için uzak bir şubeye sahip olmak iyi bir uygulama mı?


11

Projedeki her bir geliştirici için uzak bir şubeye sahip olmak iyi bir uygulama mıdır?

Git'i aşağıdaki şubelerle kullanıyoruz:

  • usta
  • serbest bırakmak
  • geliştirmek

Her geliştiricinin kendi dalı varsa, kodlarını şubelerine zorlayabilir ve diğerleri bu değişiklikleri kendi dallarına birleştirebilir.


1
Bana hatırlatıyor Accurev çalışma alanları, belirli bir makinenin MAC adresine bağlı değil. Bunu sevdim.
Brandon


1
Neden nat eklenen her yeni özellik için benzersiz bir şubeye sahip?
Martin York

@Loki Evet .. bu iyi bir fikir ..
balanv

Yanıtlar:


4

Hayır! Her geliştirici için uzak bir dal ad alanına sahip olmak iyi bir uygulamadır .

Tek bir dal genellikle yeterli değildir, bu nedenle geliştirici ya çok fazla geri sarır ya da çok yardımcı olmaz. Bir geliştiricinin kendi adı altında istedikleri her şeyi zorlayabileceğini söylemek istersiniz/ . Başkaları için önizleme sürümleri yayınlamak, başka birinin test etmesi veya hatta başka birinin entegre olması için sürüm vermek için kullanabilirler.

Bunu, birleştiriciye dal vermek için de kullanabilir veya göreve dayalı adlar kullanabilirsiniz. Göreve dayalı adların entegratör için izlenmesi genellikle daha kolaydır, ancak geliştiricilerin adlandırma hakkında daha fazla düşünmelerini sağlar ve insanlar düşünmeyi sevmez. Hangisinin pratikte daha iyi çalışacağını bilmiyorum; hatta belirli takıma bağlı olabilir.


2

Muhtemelen şubeleri kendileri oluşturup yok etmelerine ve ne için olduklarını açıkça belgelemelerine izin veren bir tür github tarzı altyapıya sahip değilseniz, her geliştiriciye merkezi sunucuda bir dal vermeyeceğim. Bazı geliştiricilerin birden fazla şubeye ihtiyacı vardır ve bazılarının hiç bir şeye ihtiyacı yoktur, ancak herkesin sıralaması ve sizin için yönetim yükü için karmaşa yaratırsınız.

Bunun yerine organik türlerin git türünü de teşvik ediyorum. Kendi makinenizde çıplak bir klon yapmak ve bu klasörü başkalarının çekmesi için salt okunur bir SMB paylaşımı yapmak çok kolaydır. Aslında, geliştiricilerinizin birçoğu bunu zaten yapmıyorsa beni çok şaşırtacaktı.


1
Varsayılan olarak herkes her zaman bir şube oluşturabilir. Github tüm depoların oluşturulmasına izin verir, ancak bu durumda bu aşırıdır.
Jan Hudec

1

Geliştirme ekibinizin ve görevlerinizin nasıl organize edildiğine bağlıdır. Bence, belirttiğiniz model aşağıdaki durumlarda en iyi sonucu verir:

  1. Her geliştirici kendi başına bağımsız görevler üzerinde çalışır.
  2. Tüm geliştiriciler aynı işe katkıda bulunuyor.

Bunun işe yaramayabileceği yerler, geliştirme aşamasında eşzamanlı özellik projeleriniz varsa ve her birinin üzerinde çalışan birden fazla geliştirici varsa.


1

Her bir geliştiriciye kendi dalını vermek, hepsi aynı dosyalara dokunabilecek farklı şeyler üzerinde çalışıyorsa yardımcı olabilir. Birbirlerinin ayak parmaklarına basmasını önlemeye yardımcı olabilir, ancak her birinin sık sık birleşmesini ve çatışmaları yönetirken sorumlu olmasını gerektirir. Ofisimde yapılan budur ve düzenlediğiniz dosyaların yarısını manuel olarak birleştirmeniz gereken nadir günden çok iyi çalışır.

Aynı özellik üzerinde çalışan birden fazla geliştiriciniz varsa, geliştiriciden ziyade geliştirmedeki özelliğe dayalı dallar oluşturmak daha iyidir.


1

Git ile çalışıyorsanız Çekme İsteklerini denemeniz gerekir.

Özetle, önce ana dalı geçerli çalışma dalınızla birleştirirsiniz. Herhangi bir birleştirme çakışması yerel şubenizde olacaktır. Bu güzel, çünkü ana dalınız asla kırılmamış. Gerçekten berbat ederseniz, geri dönebileceğiniz yerel taahhüdünüz var.

Birleştirmeyi bitirdiğinizde, ekipten bir başkasından dalınızı ana dalda inceleyip birleştirmesini istersiniz. Asla kendinizinkini birleştirmeyin! Hiç kimse gizlice girip başka bir Çekme İsteği yapmadığı sürece, başarılı bir şekilde birleşmeniz garanti edilir. Herkes Çekme İsteğinin farkında olduğu için, zaten aynı anda ustaya karışan birden fazla insan olmamalıdır.

Bu sürece alıştıktan sonra, mümkün olduğunca sık birleştirmeye çalışmalısınız - bir çeşit zavallı adamın sürekli entegrasyonu. Çatışmalar arasında ne kadar az zaman kalırsa o kadar iyidir. İki kişinin ne zaman çaba harcadığını belirleyeceksiniz ve takım kurabilirler. Bazı yerler, bir gereksinimi her tamamladıklarında birleşir ve bu da birkaç saatte bir olabilir. Haftada en az bir kez birleştirmenizi öneririm; Aksi takdirde görevlerinizi daha iyi çözmeniz gerekir.

Genellikle görev başına bir dal oluştururum. Git güzel çünkü yerel taahhütler ve itmeler arasında ayrım yapıyor. Bu, tüm karmaşıklığı olmaksızın kendi şubelerine sahip olan her bireyin faydalarından bir kısmını sağlar.

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.