Web geliştirme için GIT iş akışı


12

Uzun zaman önce birlikte çalıştığım web geliştiricisinin küçük ekibi, web geliştirme için git'i kullanmaya başladı. O zamanlar doğrudan sahnelemeyi veya ustalaşmayı taahhüt ettik ve sonra ikisi arasında sık sık birleştik. Hiç yoktan iyiydi, ama aynı zamanda bir karışıklıktı.

Çok uzun zaman önce gitflow iş akışını kabul ettik. Kesinlikle daha önce gelen kaos daha iyi olsa da biraz hantal ve aşırı serbest / kilometre taşı odaklı görünüyor. Geliştiricilerim sık sık benden nasıl çalışacağını ve neyin birleşip neyin karışmaması gerektiğini açıklamamı istiyorlar. Genel olarak, kodun sıkça dağıtıldığı ve yayınlanmak üzere belirli kilometre taşlarını izlemediğimiz web geliştirme çalışmaları için uygun görünmemektedir.

Bir arkadaşımın son önerisinde GitHub Flow'a bakmaya başladım . Scott Chacon'un gönderisini burada okumak , bununla birlikte acı noktasına mükemmel bir şekilde vuruyor:

Peki, neden GitHub'da git-flow kullanmıyoruz? Asıl mesele, her zaman konuşlandırmamızdır. Git-akış süreci büyük ölçüde “salınım” etrafında tasarlanmıştır. Gerçekten “sürümlerimiz” yok çünkü her gün üretime başlıyoruz - genellikle günde birkaç kez.

FWIW, Atlassian'ın sitesinde bu güzel iş akışına da baktım: https://www.atlassian.com/git/workflows#!workflow-feature-branch

Ancak TÜM küçük bir ekipte web geliştirme için kötü seçimler gibi görünüyor ve yine sık / günlük sürümler değil büyük uygulama sürümlerine yönelik.

Bu SE üzerinde git-akışını github-akışıyla karşılaştırmak isteyen bir soru. Https://stackoverflow.com/questions/18188492/what-are-the-pros-and-cons-of-git-flow-vs-github -akış

Bu genel olarak iyi bir yanıt, ancak meta.programmers'ın altındaki yorumumda belirttiğim gibi, genel en iyi iş akışı uygulamaları hakkındaki soruların buraya ait olduğunu gösteriyor ve sadece git-flow ve github'dan daha geniş bir olası cevaplar listesi umuyordum. -flow, web geliştirmeye özgü olurken. Bu yüzden bence burada yeni bir soru gerektiriyor.

Bununla, oldukça sürekli konuşlandırmaya sahip projeler üzerinde çalışan küçük bir web geliştirme ekibi için en iyi / tercih edilen git tabanlı iş akışı nedir? Github akışı veya başka bir şey mi?


BTW, bu soruyu burada Programmers.SE'ye koydum
jb510

Araştırmanızı paylaşmak herkese yardımcı olur . Neyi denediğinizi ve neden ihtiyaçlarınızı karşılamadığını bize bildirin. Bu, kendinize yardım etmek için zaman harcadığınızı gösterir, bizi bariz cevapları tekrar etmekten kurtarır ve en önemlisi daha spesifik ve alakalı bir cevap almanıza yardımcı olur. Ayrıca bkz. Nasıl
Sorulur

@gnat Bu konuda başka neler paylaşabileceğimden emin değilim? gitflow'un serbest bırakılma odaklı olması hantal bir iştir. GitHub-Flow günlük dağıtım için iyi olduğunu iddia ediyor, ancak düzinelerce dalın birleştirilmeyi bekleyen bir kaos gibi görünüyor. Birinin "X web geliştiricisi için harika çünkü Y" ile yanıt vermesini umuyordu. Sağladığım bağlantıda iyi kaplanmış, sanırım ondan alıntı yapabilir miyim?
jb510

1
@gnat - Soruyu tamamen daha fazla araştırma göstermek ve aradığım cevap hakkında çok net göstermek için yeniden yazdım.
jb510

Yanıtlar:


7

Öncelikle, incelediğiniz farklı iş akışlarının küçük bir özetini yapmak istiyorum ve üzerinde çalıştığınız geliştirme türü için uygun olmadığını düşünüyorsunuz:

  • Merkezi ( Kaynak ): SVN iş akışına çok benzer, ancak şimdi dağıtılmış bir ortamda. Her geliştirici, kişisel bir kopyası üzerinde çalışır masterve değişiklikleri origin/masterdoğrudan veya çekme isteği yoluyla gönderir.

  • Özellik dalı ( Kaynak ): Evet. Belirli bir özellik üzerinde çalışan her geliştirici, yalnızca o özelliğe ayrılmış belirli bir dalda çalışmalıdır. Bu özellik dalı master, başka bir özellik dalından veya başka bir daldan oluşturulmalıdır. Sonunda her şey yeniden birleşir master.

  • Gitflow ( Kaynak ): İki ana dal proje geçmişini izler developve master. Başka 3 şube olarak adlandırılan hotfix, releaseve featuretutma değişiklikleri doğrudan yapılan masteröncesinde tıpkı belirli bir özellik üzerinde bir serbest bırakılması ya da iş için kritik üretim hataları, değişim sürüm numarasını ve diğer ayrıntıları sabitleme için Özellik dalı sırasıyla.

  • GitHub flow ( Source ): Geliştiriciler featurekapalı bir dal oluşturur master. Değişiklikler çekme isteği ile gönderilir. Kabul edilen değişiklikler master GitHub bot Hubot tarafından hemen dağıtılır.

Sorunuzun geliştirme kısmı için cevap ekibinizin arka planına bağlıdır. SVN ortamından mı geliyorlar? O zaman merkezi yaklaşımı benimsemelisiniz çünkü SVN'ye en çok benzeyen yaklaşımdır. Git ile çalışmak rahat mı? O zaman belki de ekibinizin iş akışını bunlardan herhangi birine uyarlamaya çalışmamalısınız, ancak iyi anladıysam geliştirme esnekliği ve hızlı dağıtım olan ihtiyaçlarınıza göre hazırlanmış kendi işinizi uygulamaya koymalısınız.

Ben de ikincisini geliştirmeye odaklanmanız gerektiğini düşünüyorum. Dağıtım boru hattınız nasıl oluşur? " Sürekli Dağıtım: Derleme, Test ve Dağıtım Otomasyonu ile Güvenilir Yazılım Sürümleri " nde yazarlar, nadiren yapılan dağıtımların olası nedenlerini belirler;

  • Dağıtım işlemi otomatik değildir.
  • Test uzun sürüyor.
  • İnsanlar derleme / test / dağıtma işlemini anlamıyor.
  • Geliştiriciler, küçük, artımlı değişiklikler yaparak uygulamayı çalışmaya devam etme konusunda disiplinli değiller ve bu nedenle sık sık mevcut işlevselliği bozuyorlar

Bunlardan herhangi biri iyileştirebileceğiniz bir şey gibi geliyor mu? Belki bize ve ekibinizin projenin bu kısmını nasıl ele aldığını biraz daha anlatabilirsiniz.


2
+1, cd'nin anahtarı git veya gitflow değil CI ve dağıtım iş akışıdır.
Wyatt Barnett

Bu konuda ÇOK düşünmek. İçgörü için teşekkürler. FWIW, özellikle CI terimini kullanmaktan kaçınıyorum çünkü CI kullanmıyoruz. Belki de yapmalıyız, ama yapmıyoruz, belirli bir haftada çalıştığımız düzinelerce proje için çok hantal, bazıları kısa vadeli, bazıları uzun vadeli.
jb510

2
@ jb510 - benzer bir proje kurulumumuz var, CI olmadan uçmayı hayal etmem. Tüm aptal ama kırılgan parçalar yazıldığında bağlam değiştirmek çok daha kolaydır.
Wyatt Barnett

1
Bazen, CI'yi kolayca uygulayamama , bir projede CI'ye ne kadar ihtiyacınız olduğunu gösterir . Birim testi yok mu? Tüm kılavuz dağıtımı? Birçok adım atılıyor? Muayene gerekiyor.
Kzqai

1
Yıllar boyunca bu soruyu ve cevabı takip ettim. Başkalarının da cevaplar sunmasını umuyordum, ama bu kendisi harika bir cevaptı, bu yüzden sonunda kabul edildi (muhtemelen uzun zaman önce
yapmalıydı
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.