Trunk-Based Development (TBD), yazılım geliştiricilerin 'trunk' veya 'main' adı verilen tek bir ana dalda iş birliği yaptığı bir kaynak kontrol modelidir. Bu yaklaşım, uzun ömürlü geliştirme dalları oluşturmaktan kaçınarak birleşme (merge) sorunlarını, derleme hatalarını (build breaks) ve karmaşık entegrasyon süreçlerini önlemeyi hedefler. TBD, sürekli entegrasyon (Continuous Integration - CI) ve dolayısıyla sürekli teslimatın (Continuous Delivery - CD) temel bir kolaylaştırıcısıdır. Ekiplerin günde birden çok kez ana dala değişikliklerini işlemesi, kod tabanının her zaman yayınlanmaya hazır olmasını sağlar ve CI'ın temel gereksinimlerinden biri olan her 24 saatte bir ana dala commit yapma şartını karşılamayı kolaylaştırır.
TBD, küçük ekipler ve daha büyük, ölçeklenmiş ekipler için farklı şekillerde uygulanabilir. Küçük ekipler doğrudan ana dala commit yapabilirken, daha büyük ekipler kısa ömürlü özellik dalları (feature branches) kullanabilir. Bu kısa ömürlü dallar genellikle kod incelemesi (code review) ve CI kontrolleri için kullanılır, ancak nihai ürün oluşturma veya yayınlama için değildir. Değişiklikler ana dala entegre edilmeden önce bu dallar üzerinden hızlı ve sürekli kod incelemesi yapılır. Geliştiriciler, değişikliklerini diğerlerinin görmesi için commit/push yapmadan önce kendi geliştirme ortamlarında (iş istasyonları, VM'ler veya bulut tabanlı konteynerler) tam bir "ön entegrasyon" derlemesi (derleme, birim testleri, entegrasyon testleri) gerçekleştirir.
Büyük ve kapsamlı değişiklikler için özellik bayrakları (feature flags), soyutlama ile dallanma (branch by abstraction) gibi teknikler kullanılır ve "derlemeyi bozma" prensibi esas alınır. Yayın döngüsüne bağlı olarak, ana daldan anlık olarak kesilen ve yayın sonrası silinen yayın dalları (release branches) kullanılabilir veya ekip doğrudan ana daldan yayın yapmayı tercih edebilir. TBD, GitFlow gibi birden çok uzun ömürlü dal içeren diğer dallanma modellerine kıyasla daha verimli ve hızlı bir geliştirme süreci sunar.
Bu geliştirme modeli, ekiplerin daha hızlı entegrasyon yapmasını, birleşme sorunlarından kaçınmasını ve sürekli teslimat yeteneklerini güçlendirmesini sağlayarak yazılım geliştirme süreçlerini önemli ölçüde iyileştirir.