Dallanma modelleri sizin için ne Gıt?
Firmamız halen/serbest/dallanma modeli düzeltmeleri ve dallanma modeller şirketi veya gelişim süreci için en iyisi ne tavsiye ister basit bir gövde kullanıyor.
Dallanma modelleri / iş akışı
Aşağıda üç ana açıklamaları gördüm, ama onlar kısmen çelişen ya da birbirini yok yeterince geniş için sıralamak sonraki sorunlarımız var çalıştırmak (aşağıda açıklandığı gibi). Böylece takımımız şu ana kadar çok büyük çözüm olur. Daha iyi bir şey yapıyorsun?
Vs rebasing (karışık vs sıralı tarih) birleştirme
0 ** bir ya da görev tamamlanana kadar ana hat geri birleştirilmesi ile beklemeli? Kişisel olarak bu göreve başladı ve bitti üzerinde görsel bir şekilde korur beri birleştirilmesi doğru eğildim, ve ben bile bu amaç için
merge --no-ff
tercih ederim. Diğer dezavantajları, ancak vardır. Ayrıca birçok commutative mi (ana konu içine bir dal konuya dal içine ana birleştirme anlamına gelmez birleştirme) değil birleştirme - yararlı özelliği anlayamamışsın.Doğal bir iş arıyorum
Bazen hatalar prosedürlerimizi basit bir kural ile belirli bir durumu yakalamak değil çünkü böyle bir şey. Örneğin bir düzeltme daha önceki sürümler için gerekli elbette yeterince Olası aşağı yukarı tüm Şubeler (bu terimlerin kullanımı yeterince açık mı?) birleştirmek için temel almalıdır. Ancak yaşanan bir düzeltme yapar içine ana önce geliştirici anlar kesilmeliydi yer daha aşağı tarafa, ve eğer zaten itti (daha da kötüsü, birleştirilmiş ya da bir şey, temel) seçeneğini kalan kiraz-toplama ile ilgili tehlikeler. Ne basit bir kural gibi kullanıyor musunuz?Ayrıca bu dahil bir konu şube mutlaka diğer konu dalları (ortak bir temel dallı olduklarını varsayarsak) hariç beceriksizlik. Geliştiriciler sadece yazdığı kod artık orada değil gibi başka bir duygu başlatmak için bir özelliği bitirmek istemiyorum
Nasıl birleştirme çakışmaları (cherry-pick nedeniyle) oluşturma önlemek için?
Dallar arasında kiraz-pick birleştirme çakışma oluşturmak için emin bir yol gibi görünüyor ne, bir daha asla birleştirilmiş olabilir? Ki aynı uygulamadan dönmek (ne yapmalı?) işlemek her iki dalda da muhtemelen bu durumu çözmek? Bu birleştirme tabanlı büyük ölçüde bir iş akışı için zorlamaya cesaret edemem bir sebebi vardır.
Nasıl topikal dalları içine ayrıştırmak için?
Biz fark bu müthiş montajı bitmiş entegrasyon konusuna dalları, ama sık sık bizim geliştiriciler değil açıkça tanımlanmış (bazen basit olarak "çevresinde alay") ve eğer bazı kod var zaten giren bir "mısc" konu, alınamaz oradan tekrar göre soru yukarıda? Nasıl tanımlama//mezun onaylama/konu dalları serbest çalışmak mı?
Kod Gözden geçirme ve mezun gibi uygun prosedürlerelbette güzel olurdu.
Ama biz sadece bu şeyleri yönetmek için yeterli çözmüş tutmak - herhangi bir öneriniz var mı? entegrasyon Şubesi, çizimleri?
Aşağıda ilgili bir soru listesi:
- What are some good strategies to allow deployed applications to be hotfixable?
- Workflow description for Git usage for in-house development
- Git workflow for corporate Linux kernel development
- How do you maintain development code and production code? (this için teşekkürler PDF!)
- git releases management
- Git Cherry-pick vs Merge Workflow
- How to cherry-pick multiple commits
- How do you merge selective files with git-merge?
- How to cherry pick a range of commits and merge into another branch
- ReinH Git Workflow
- git workflow for making modifications you’ll never push back to origin
- Cherry-pick a merge
- Proper Git workflow for combined OS and Private code?
- Maintaining Project with Git
- Why cant Git merge file changes with a modified parent/master.
- Git branching / rebasing good practices
- When will "git pull --rebase" get me in to trouble?
- How are DVCS used in large teams?
Ayrıca Plastik SCM task driven development, üzerinde ne yazdığına bir bak ve eğer Plastik senin seçimin değilse, nvie's branching model ve supporting scripts çalışma.
CEVAP
DVCS için Yeni geliştiriciler gerçekleştirmek için gereken en rahatsız edici özelliği publication process hakkında:
- ihtiyacınız ne olursa olsun (/Çek getir) alabilirsiniz
- (itme) (çıplak) herhangi bir repo yayınlayabilirsin
Bu, birkaç kural sorularınızı kolaylaştırmak için saygı duyarsınız:
- eğer itilmiş değil, eğer sadece rebase bir şube (son rebase yana itti
- sadece çıplak bir repo (zorunlu beri Git1.push 7)
- Linus's advices on rebase and merges takip et
Şimdi:
Dallanma modelleri / iş akışı:
her bir iş akışı, her proje için özel olarak tasarlanmıştır support a release management process, ve.
Ne ilave edebilirim için iş akışı söz vardır: her geliştirici yaratmak olmamalı bir şube özelliği, sadece bir "geçerli dev" şube, çünkü gerçek: geliştirici genellikle bilmiyor tam olarak kendi şube vasiyet: bir özelliği, birkaç (bitti çünkü insan çok karmaşık bir özellik), hiçbiri (çünkü hazır değil zaman için serbest), başka bir özelliği (çünkü orijinal bir "başlık"),...
Bir" Bir "sonra" geliştiriciler tarafından/o özelliği. uyan çalışmalarının bir parçası rebase birleştirme getirilebilir hangi repo, Merkez, resmi özellik dalları kurulan "bütünleştirici sadece
Vs rebasing (karışık vs sıralı tarih) birleştirme:
Söz benim cevabım gibi("Workflow description for git usage for in-house development")
Doğal bir iş arıyorum:
düzeltmeler için, yardım ilişkilendirme her düzeltme ile bir bilet bir hata izleme yardımcı olan geliştirici unutma nerede (yani hangi şube, yani bir özel şube "düzeltmeleri") gerekir tamamlama gibi değişiklikler.
Daha sonra kancalar olmayan doğrulanmış hata düzeltmeleri veya bir itme gerekmez mi şubelerden gelen iter karşı merkezi bir repo korunmasına yardımcı olabilir. (belirli bir çözüm burada, çevreye adapte olmak için tüm bu gerekir)
Nasıl birleştirme çakışmaları (cherry-pick nedeniyle) oluşturma önlemek için?
his answer cherry-picking Jakub Narębski belirttiği gibi gerekli olduğu nadir durumlar için ayrılmış olmalıdır.
Eğer Kur kiraz-toplama bir sürü içeriyorsa ("nadir"), o zaman bir şeyler eksik. yani
Ki aynı uygulamadan dönmek (ne yapmalı?) işlemek
git revert
o dikkatli olmalıdır, ama ideal değil.
Nasıl topikal dalları içine ayrıştırmak için?
Henüz bir şube her yerde itilmiş sürece, bir geliştirici içine işleyen (O/O bir kez o nihayet gelişimi daha kesin ve kararlı bir şekil alır) geçmişi yeniden düzenlemek gerekir:
- gerekirse birkaç dal (net tespit özelliği)
- bir dizi uyumlu bir şube içinde (Trimming Git Checkins) tamamlar
Kod Gözden geçirme ve mezun gibi uygun prosedürler ?
Entegrasyon Şubesi (özel entegrasyon) repo geliştirici için yardımcı olabilir:
- onun/uzak entegrasyon şube (pull --rebase) üstüne gelişimi rebase
- yerel olarak çözer
- bu repo gelişimi itin
- bir karışıklık sonucu değil bütünleştirici;) ile kontrol edin
Bir şekilde Raylar tüm Modelleri kolek...
Benim için Çekirdek Veri modelleri oto...
Ve kullanarak TortoiseSVN dallanma bir...
El ile olayları izleme bulanıklık olma...
Nasıl AMD (require.js)kullanırken Back...