Git
Chapters ▾ 2nd Edition

3.4 Git Branching - İş Akışı Dallandırması

İş Akışı Dallandırması

Artık dallandırma ve birleştirmenin temellerini öğrendiğinize göre bunlarla ne yapabilirsiniz? Bu bölümde, bu hafif dallandırma ile mümkün olan bazı yaygın iş akışlarını ele alacağız, böylece bunları kendi geliştirme döngünüze dahil edip etmek istemediğinize karar verebilirsiniz.

Uzun Ömürlü (long-running) Dallar

Git, basit bir üçlü birleştirmeyi kullandığı için, bir daldan diğerine uzun bir süre boyunca birden fazla kez birleştirme yapmak genellikle kolaydır. Bu, her zaman açık olan ve geliştirme döngünüzün farklı aşamalarında kullanabileceğiniz birkaç dalınız olabileceği anlamına gelir; bunlardan bazılarını düzenli olarak diğerlerine birleştirebilirsiniz.

Birçok Git geliştiricisi, bu yaklaşımı benimseyen bir iş akışına sahiptir. Örneğin, master dallarında hatasız çalışan (muhtemelen yayımlanmış veya yayımlanacak) dengeli (stabil) kodu bulundurabilirler. Bunun yanında üzerinde çalışmak veya düzgün çalıştığını test etmek amacıyla develop veya next adında başka bir paralel dalları daha vardır. Bunların her zaman dengeli olması gerekmez, ancak kararlı (hatasız çalışan) bir duruma geldiğinde master dalına birleştirilebilir. Bu dal, daha altta yer alan konu dallarını (önceki iss53 dalı gibi kısa ömürlü dalları) içeri çekmek için kullanılır; hazır olduklarında yani tüm testleri geçip hata vermediklerinde ana dala (master veya main) birleştirilir.

Aslında bahsettiğimiz şey, işlediğiniz katkı çizgisinde yukarı yönlü hareket eden işaretçilerdir. Dengeli dallar, katkı geçmişinizde daha aşağıda yer alırken, en güncel dallar geçmişin daha yukarısındadır.

dengeli-ilerleme (progressive-stability) yaklaşımının doğrusal görüntüsü.
Görsel 26. dengeli-ilerleme (progressive-stability) yaklaşımının doğrusal görüntüsü

Genellikle, bunları iş kuleleri (work silo) olarak düşünmek daha kolaydır, burada katkı grupları tamamen test edildiğinde daha dengeli bir yapıya eklenir.

dengeli-ilerleme (progressive-stability) yaklaşımının kule görüntüsü.
Görsel 27. dengeli-ilerleme (progressive-stability) yaklaşımının kule görüntüsü

Bu yaklaşımı farklı denge seviyelerinde sürdürebilirsiniz. Bazı büyük projeler, henüz next veya master dallarına bütünleşmeye hazır olmayan birleşik dalları içeren bir proposed veya pu (proposed updates) dalına sahiptir. Temel fikir, dallarınızın çeşitli denge düzeylerinde olmasıdır; daha kararlı bir düzeye ulaştıklarında, bir üstlerindeki dala birleştirilirler. Tekrar belirtmek gerekirse, birden çok uzun ömürlü dala sahip olmak zorunlu değildir, ancak özellikle çok büyük veya karmaşık projelerle uğraşılıyorsa genellikle faydalı olur.

Tematik Dallar

Ancak, tematik dallar (topic branch) herhangi bir boyuttaki projelerde faydalıdır. Bir tematik dal, yalnızca belirli bir özellik veya ilgili çalışma için oluşturduğunuz kısa ömürlü bir şubedir. Bu genellikle dalı oluşturmak ve birleştirmek çok maliyetli olduğu için bir sürüm kontrol sistemiyle daha önce muhtemelen yapmadığınız bir şeydir. Ancak Git’te bir günde birkaç kez dal oluşturmak, üzerinde çalışmak, birleştirmek ve silmek yaygındır.

Bunu, oluşturduğunuz iss53 ve hotfix dalları ile bir önceki bölümde gördünüz. Bu dallarda birkaç katkı işlediniz ve onları ana dalınıza birleştirdikten hemen sonra sildiniz. Bu teknik, hızlı ve tam bir bağlam değişimi sağlar. Çünkü çalışmanız, tüm değişikliklerin o konuyla ilgili olduğu dallara ayrılmış durumda, böylece kod incelemesi ve benzeri durumlarda neler olduğunu görmek daha kolaydır. Değişiklikleri orada dakikalarca, günlerce veya aylarca tutabilir ve hazır olduklarında (oluşturuldukları veya üzerinde çalışıldıkları sıraya bakılmaksızın) birleştirebilirsiniz.

Örnek olarak, master dalı üzerinde çalışıyorsunuz, bir sorunu çözmek için iss91 dalını oluşturuyorsunuz, bir süre üzerinde çalıştıktan sonra aynı şeyi başka bir şekilde ele almak için iss91v2 adlı ikinci bir dal oluşturuyorsunuz, master dalına geri dönüyorsunuz ve bir süre orada çalıştıktan sonra, belki de iyi bir fikir olup olmadığından emin olmadığınız bir iş üzerinde çalışmak için oradan da dumbidea dalını açıyorsunuz. Katkı geçmişiniz şuna benzer bir görünüme sahip olacak:

Çoklu Tematik Dallar.
Görsel 28. Çoklu Tematik Dallar

Şimdi, diyelim ki sorununuza en iyi çözümün iss91v2 olduğuna karar verdiniz; ve dumbidea dalını iş arkadaşlarınıza gösterdiğinizde bunun aslında çok parlak bir fikir olduğu ortaya çıktı. Orijinal iss91 dalını (C5 ve C6 katkılarını kaybederek) çöpe atabilir ve diğer iki dalı birleştirebilirsiniz. O zaman geçmişiniz şöyle görünecek:

Birleştirme sonrası `dumbidea` ve `iss91v2` geçmişi.
Görsel 29. Birleştirme sonrası dumbidea ve iss91v2 geçmişi

Git projeniz için çeşitli olası iş akışları hakkında daha fazla detaya Distributed Git bölümünde gireceğiz. Bu nedenle bir sonraki projenizde hangi dallandırma şemasını kullanacağınıza karar vermeden önce bahsi geçen bölümü okuduğunuzdan emin olun.

Bunları yaparken önemli olan, tüm bu dalların tamamen yerel olduğunu hatırlamaktır. Dallandırma ve birleştirme işlemleri yaparken, her şey yalnızca kendi Git repo dosyanızda gerçekleşir ve sunucu ile iletişim yoktur."

scroll-to-top