Git üretim / hazırlık sunucusu iş akışı


108

Şu anda web sitemde (üretim sunucusu) zaten çok fazla kod var. Ve şimdi projelerim için Git kullanmaya başlamak ve ekibim için bir hazırlık sunucusu kurmak istiyorum. Biri bana tavsiyede bulunabilir mi?

İşte aklımdaki resim:

        Production        - Production server which already have codes
            ↑             
         Staging          - New staging server, will install Trac too
         ↗↙ ↖↘          
  Developer1  Developer2  - Local development 

Sorum şu, nasıl başlamalıyım?

İşte aklımdaki bazı adımlar:

  1. git initüretim sunucusu yapmak (bu güvenli mi?)
  2. clone üretimden hazırlık sunucusuna repo
  3. geliştiriciler clonedepodan sahnelemeden yerel makinelerine
  4. push değiştirme bittikten sonra dosyaları hazırlama sunucusuna
  5. sahneleme hazır olduğunda, pushher şey prodüksiyona kadar

Bu iş akışı mantıklı mı yoksa bunu yapmanın daha iyi bir yolu var mı?

Ya sadece bir dosyayı değiştirmek istersem?

Menşe / ustanın bu süreçte bununla bir ilgisi var mı? Menşei kim? Birden fazla kökene mi sahip olacağım?

Ayrıca, branchbu durumda bir geliştirici ne zaman kullanmalıdır ?

Yanıtlar:


59

Ana dalı yalnızca Hazırlama için Üretim ve geliştirme dalı için kullanmak daha iyidir. Her geliştirici, yeni özellikler eklemek için yerel şube oluşturmalı ve ardından geliştirme dalıyla birleştirmelidir. Bir git konusunda yeniyseniz, şunu kullanmayı deneyin - http://github.com/nvie/gitflow Git dallanma modelini açıklayan güzel bir resim de var - http://nvie.com/posts/a-successful-git- dallanma modeli /


Bu daha iyi bir cevap. Git dallanma kavramına pek aşina değildim.
kanoy

@bUg. Geliştirme dalını açıklayan bir kaynağa bağlantınız var mı -> aşamalı sisteme ve ana dala itin -> üretim sunucusuna daha ayrıntılı olarak iletin? Muhteşem makale Başarılı bir Git dallanma modeli , çok iyi dallanma ve sürüm oluşturma kavramlarından söz etse bile bu kısımdan bahsetmez.
Edgar Alloro

19

Öneriniz iyi görünüyor, ancak geliştiricilerin doğrudan hazırlık sunucusuna geçmesine izin vermem. Bunun yerine, bir entegratör dalları dikkatlice incelemeli ve bunları ana şubeye (veya bUg tarafından önerildiği gibi git akış modelini kullanıyorsanız geliştirme şubesine) dahil etmelidir.

* Entegratör : " Bir grup projesinde entegratör olarak görev yapan oldukça merkezi bir kişi, başkaları tarafından yapılan değişiklikleri alır, gözden geçirir, bütünleştirir ve sonucu başkalarının kullanması için yayınlar ... "


1. üretim sunucusunda git init yapın (bu güvenli mi?)

Evet güvenlidir, ancak elbette bu depo için çok kısıtlayıcı izinler belirlemelisiniz. curlZaten sahip olmasam, muhtemelen tüm web sitesini yerel bir diske yerleştirerek başlayabilirim .

2. repoyu üretimden hazırlama sunucusuna kopyalayın

Muhtemelen hem üretim hem de hazırlama sunucusundan ayrı "merkezi" bir deponuz olmalıdır. Gerektiği gibi klonlanabilir ve itilebilir.

3. geliştiriciler depoyu sahadan yerel makinelerine klonlar

4. değiştirme bittikten sonra dosyaları hazırlama sunucusuna gönderin

5. Sahneleme hazır olduğunda her şeyi prodüksiyona aktarın

"Evreleme" yi "merkez" ile değiştirin ve bence sorun yok, ancak bUg'un da işaret ettiği gibi daha büyük bir sorun şubelerle nasıl çalışacağınız ve birleştireceğiniz.


10
1: Git deposunu üretimde güvenli hale getirmek için, içinde "Tümünü Reddet" yazan bir .htaccess dosyası eklediğinizden emin olun.
29'da kayue

2
2: Felixyz'in "Merkez" reposu çıplak repoya atıfta bulunuyor. Çıplak bir depo oluşturmak için --bare komutunu kullanın.
31'de kayue

1
@keyue 1: Daha da iyisi, RedirectMatch 404 /\.gitüretiminize .htaccess ekleyin .gitignore , .gitattributes ve .git klasörünüzü korumak için .
Leo
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.