2010-03-13 12 views
5

Herkesin test ve entegrasyon için zorladığı merkezi bir git veri depom var, ancak sadece özellikler 'hazır' olduğunda itiliyor. Büyük bir görevin ortasındayken, geliştiricilerin sıklıkla sabit disklerinde kalan birçok işi vardır.Git deponuzu diğer geliştiricilerle nasıl paylaşırsınız?

Bazen bu projelerin ortasında, başka bir geliştiricinin ne yaptığını görmek veya ona nasıl bir şey yaptığımı göstermek isterim. Başka bir geliştiriciye "çalışma kopyasını çek" demeyi çok isterim.

Düşünebilmemin tek yolu, herkesin kendi geliştirme makinelerinde SSH çalıştırmasını ve herkes için hesaplar veya SSH anahtarları ekmesini sağlamaktır, ancak bu büyük bir gizlilik ve izin kabusudur ve sürdürülmesi gereken çok iş gibi görünüyor.

Bu durumlarda bu merkezi depoya mı basmalıyız? Her yerel taahhütten sonra mı itmeliyiz?

+0

linux veya windows kullanıyor musunuz? – hasen

+0

en güncel geliştiriciler OS X üzerinde, bu yüzden ssh tamamen sorudan çıkmıyor. – semi

cevap

3

iki yaygın yaklaşımlar:

  • geliştiriciler (örneğin mpd ve ilgili programlar için) kendi kamu repo var.
  • geliştiriciler, kendi ad alanlarına merkezi bir repo (dev1/master, dev2/master) üzerinde başvurur. Tam durumunuza bağlı olarak, kimsenin aptalca bir şey yapmadığından emin olmak için kanca şeklinde birtakım kontroller isteyebilirsiniz.
3

Biz "hazır" değil henüz şube kodu kullanın ve dalları merkezi repo itilmiş olsun (yedeklenir!). Yeni bir özellik "hazır" olduğunda, master dalına birleştirilir.

Git'i kullanmanın yararlarından biri, oluşturma ve dalların birleştirilmesi çok kolay, artı gitk kullanarak neler olduğunu görselleştirebilirsiniz. Tavsiye edilen!

+0

Bunu nerede öğrendiğimi unuttum - eğer birden fazla geliştiriciniz varsa her geliştiricinin baş harfleri tarafından öntanımlı bir veya daha fazla dalda çalışması vardır, örn. nr/önerilen, nr/line-end-fixes ve sadece entegrasyon için master dalını kullanın. Şubeler daha sonra depoların etrafına itilebilir ve orijinal kaynak açık kalır ve şube adı çakışmaları yoktur. –

+0

Bu özellik, özellik dallarının git felsefesiyle uyumludur ... sadece uzaktan şubeleri vardır. Benim bir projem bu yaklaşımı kullanıyor ve iyi çalışıyor gibi görünüyor. – RyanWilcox