# Birleştirme kuyruğu: ajan dalları ana dalı bozmasın

Adres: https://agentvera.dev/blog/yapay-zeka-ajanlari-birlestirme-kuyrugu/ · Yayın: 2026-10-18

Birleştirme kuyruğu nedir, paralel yapay zeka ajanlarının dalları ana dalı neden bozar? Dalları sırayla birleştirip test eden kuyruğun nasıl çalıştığını anlatıyorum.

**Kısaca:**

- Her biri kendi testlerini geçen dallar, eski bir tabana karşı test edildikleri için birlikte ana dalı bozabilir.
- AgentVera’nın birleştirme kuyruğu her dalı kendi worktree’sinde hedef dalın güncel ucuna birleştirir ve sonuç üzerinde bir kontrol çalıştırır.
- Çakışmada bir çözücü ajan açılır, başarısız kontrol en fazla iki düzeltme turu alır; varsayılan olarak geçen dal ana dala girmeden önce onayını bekler.

Birleştirme kuyruğu, birden fazla yapay zekâ ajanıyla çalışırken ana dalı ayakta tutmanın en sağlam yoludur. Tek ajanla çalışırken sorun yoktur: ajan bir dalda çalışır, sen bakarsın, birleştirirsin. Ama aynı anda üç dört ajan kendi dalında iş bitirmeye başladığında tablo değişir. Her dal kendi başına testten geçer, sen hepsini sırayla birleştirirsin ve bir de bakarsın ki ana dal kırmızı.

Bu yazıda paralel ajan dallarının ana dalı neden bozduğunu, birleştirme kuyruğunun bu sorunu nasıl çözdüğünü ve AgentVera’daki birleştirme kuyruğunun adım adım nasıl çalıştığını anlatıyorum.

## Ayrı ayrı yeşil, birlikte kırmızı

Bir örnekle başlayalım. Ana dalda `formatPrice(amount)` diye bir fonksiyon var. İki ajanı aynı anda çalıştırıyorsun:

- **Ajan A**, fonksiyona para birimi parametresi ekliyor: `formatPrice(amount, currency)`. Bütün çağrıları da güncelliyor.
- **Ajan B**, yeni bir fatura ekranı yazıyor ve bu ekranda `formatPrice(amount)` çağırıyor.

İki dal da ana dalın aynı hâlinden çıktı. A’nın dalında testler geçiyor, çünkü A’nın gördüğü dünyada fatura ekranı yok. B’nin dalında da testler geçiyor, çünkü B’nin gördüğü dünyada fonksiyon hâlâ tek parametreli. Git açısından da çakışma yok: iki dal farklı dosyalara dokundu.

Önce A’yı, sonra B’yi birleştiriyorsun. Git hiçbir şey demiyor. Ama ana dalda artık tek parametreyle çağrılan iki parametreli bir fonksiyon var ve tip kontrolü kırılıyor.

Buna anlamsal çakışma denir. Metin olarak çakışma yoktur, ama değişiklikler birbirini bozar. Paralel ajanlarla bu durum sıklaşır, çünkü:

- **Ajanlar birbirini görmez.** Her biri kendi worktree’sinde çalışır ve diğerlerinin ne yaptığını bilmez.
- **Dallar kısa sürede çoğalır.** Bir öğleden sonra beş altı dal birleşmeyi bekleyebilir.
- **Her dalın testi eski bir taban üzerinde koşmuştur.** Dal ne kadar bekledikçe tabanı o kadar eskir.
- **Elle sıralı birleştirme yorar.** Her birleştirmeden sonra sıradaki dalı güncellemek, testi yeniden koşmak ve çakışmayı çözmek zaman ister. İnsan bunu atlamaya başlar.

## Birleştirme kuyruğu nedir?

Birleştirme kuyruğu, ana dala girecek dalları sıraya koyan ve her birini ana dalın o anki ucu üzerinde birleştirip test eden bir düzendir. Fikir basit: bir dalı ana dala almadan önce, birleşmiş hâlini test et.

Sıradan bir akışla farkı şöyle:

| | Elle birleştirme | Birleştirme kuyruğu |
| --- | --- | --- |
| Test neyin üzerinde koşar | Dalın kendi tabanı | Ana dalın şu anki ucu + dal |
| Anlamsal çakışma | Ana dala girdikten sonra görülür | Ana dala girmeden yakalanır |
| Sıra | Kim önce basarsa | Kuyruk sırası |
| Kırık dal | Ana dalı kırar | Geri atılır, ana dal temiz kalır |

GitHub’ın da depo düzeyinde bir merge queue özelliği var: pull request’leri kuyruğa alır ve hedef dalın son hâliyle birlikte test eder. AgentVera’nın kuyruğu aynı fikri masaüstünde, ajanların dalları için uygular ve birleştirme çakışmalarını ve kırılan kontrolleri bir ajana çözdürmeyi de işin içine katar.

## AgentVera’da birleştirme kuyruğu nasıl çalışır?

Kuyruk, masaüstü uygulamasında **Detaylar → Otomasyon → Birleştirme kuyruğu** sekmesindedir. Her projenin bir kuyruğu vardır; birden fazla depolu projelerde her deponun kendi kuyruğu ve ayarları olur. Dallar ana dala tek tek girer.

### 1. Dal kuyruğa girer

Bir dalı kuyruğa üç yoldan alabilirsin:

- **Elle:** Kuyruk sekmesinde **Dal** alanına dal adını yazarsın, istersen bir **Başlık** verirsin ve **Kuyruğa ekle** dersin.
- **Paralel ekipten:** Paralel ekip işini bitirince **Kuyruğa al** düğmesiyle entegrasyon dalını kuyruğa gönderirsin.
- **Otomasyondan:** Bir otomasyon kuralında teslim şekli olarak **Birleştirme kuyruğuna ekle** seçersen, işi biten ajanın dalı doğrudan kuyruğa girer.

Bunlara ek olarak İnceleme kutusundaki kartlarda da **Birleştirme kuyruğuna gönder** kararı vardır. Kuyruktaki her iş, nereden geldiğini gösterir: elle, paralel ekip ya da otomasyon.

### 2. Ana dalın son hâli üzerinde birleştirilir

Sırası gelen dal, kuyruğun kendi ayrı worktree’sinde, hedef dalın o anki ucu üzerinde birleştirilir. Senin çalışma klasörüne ve ajanlarının klasörlerine dokunulmaz. Deponun bir uzak deposu varsa hedef dal önce çekilir ve birleştirme `origin` üzerindeki son hâlin üstünde yapılır.

Birleştirme şekli ayarlardan seçilir: **Merge commit** ya da **Squash**. Dal hedefte zaten varsa iş, ana dalda olarak işaretlenir.

### 3. Çakışma varsa bir ajan çözer

Birleştirmede çakışma çıkarsa kuyruk durmaz: bir çözücü ajan açılır ve iş “çakışma çözülüyor” durumuna geçer. Ajana iki tarafın amacını koruması, geride çakışma işareti bırakmaması ve sonucu commit etmesi söylenir.

Ajan işini bitirince AgentVera ona güvenmekle yetinmez, sonucu kendisi kontrol eder: birleşmemiş dosya kalmış mı, dosyalarda `<<<<<<<` ya da `>>>>>>>` işareti var mı, dal gerçekten birleşmiş mi. Bunlardan biri tutmazsa iş başarısız olur ve ana dala girmez.

Otomatik model seçimi açıksa çözücü ajanın modeli işin zorluğuna göre seçilir.

### 4. Kontrol birleşmiş sonuç üzerinde koşar

Birleşmiş sonuç hazır olunca kuyruk bir kontrol komutu çalıştırır. **Kontrol** alanını boş bırakırsan projenin test komutu kullanılır; istersen `pnpm typecheck && pnpm test` gibi kendi komutunu yazabilirsin.

Kontrol kırılırsa çözücü ajan çıktının son kısmıyla birlikte devreye girer ve hatayı düzeltmeye çalışır. En fazla iki düzeltme turu yapılır. Kontrol yine kırmızıysa iş **geri atıldı** durumuna geçer ve kuyruk sıradaki işe geçer. Kırık dal ana dala hiç girmez.

Yukarıdaki `formatPrice` örneğinde olacak olan tam olarak budur: B’nin dalı, A’nın girmiş olduğu ana dal üzerinde birleştirilir, tip kontrolü kırılır, çözücü ajan fatura ekranındaki çağrıyı yeni imzaya uydurur, kontrol yeşile döner.

### 5. Onay ve ana dala alma

Kontrolü geçen dal hazırdır. Varsayılan ayarda **Geçenleri kendiliğinden ana dala al** kapalıdır; iş “hazır, onay bekliyor” durumunda bekler ve sana bildirim gelir. Bakarsın, uygun görürsen **Ana dala al** dersin.

Ana dala alma şöyle olur:

- **Uzak depo varsa** birleşmiş sonuç hedef dala push edilir. GitHub depolarında bilgisayardaki GitHub girişin kullanılır.
- **Uzak depo yoksa** yerel hedef dal ileri sarılır. Commit edilmemiş işin varsa dal onun altından kaydırılmaz.
- **Hedef dal arada ilerlediyse** iş yeni uç üzerinde yeniden kurulur ve kontrol tekrar koşar. Bu en fazla üç kez denenir; hedef durmadan ilerliyorsa iş başarısız olur.

Uygulamayı kapatıp açtığında yarıda kalan iş kaybolmaz, yeniden sıraya girer.

## Ayarlar

Kuyruğun ayarları azdır ve hepsi aynı sekmededir:

| Ayar | Ne işe yarar | Varsayılan |
| --- | --- | --- |
| Hedef dal | Dalların gireceği dal | Boş: varsayılan dal |
| Birleştirme | Merge commit ya da Squash | Merge commit |
| Kontrol | Birleşmiş sonuçta koşan komut | Boş: projenin test komutu |
| Geçenleri kendiliğinden ana dala al | Kontrolü geçen dalı onaysız alır | Kapalı |

Kuyruktaki işler için **Yukarı** ve **Aşağı** ile sırayı değiştirebilir, **İptal** ile bir işi durdurabilir, başarısız ya da iptal edilmiş bir işi **Yeniden dene** ile tekrar başlatabilirsin. Her işin akışı ve geçmişi ayrı ayrı görünür; PR’ı olan işlerde **PR’ı aç** ile GitHub’a geçebilirsin.

Kuyruk arka planda çalışan diğer işlerle aynı kaynakları paylaşır ve öncelik sırasında ilk sıradadır: birleştirme, otomasyondan ve paralel ekipten önce gelir. Senin elle başlattığın ajanlar hiç sıraya sokulmaz.

## Paralel ekip ve kuyruk birlikte

Birleştirme kuyruğu en çok paralel ekiple birlikte işe yarar. Paralel ekip büyük bir işi en fazla sekiz parçaya böler; varsayılan olarak aynı anda üç ajan, her biri kendi worktree’sinde çalışır. Parçalar bir entegrasyon dalında birleştirilir, çakışmaları ve kontrolü bir entegrasyon ajanı halleder.

Ekip bitince elinde tek bir entegrasyon dalı olur. Bu dalı **Kuyruğa al** ile kuyruğa gönderirsin. O sırada başka bir ekip ya da bir otomasyon da ana dala bir şey göndermiş olabilir; kuyruk hepsini sırayla ve her seferinde ana dalın son hâli üzerinde test ederek alır.

Paralel ajanlarla çalışma düzenini ayrıntılı görmek istersen [paralel kodlama ajanları](/blog/paralel-kodlama-ajanlari/) yazısına bakabilirsin.

## Sık yapılan hatalar

- **Kontrolü boş ve test komutu olmayan bir proje.** Kuyruk birleştirir ama doğrulayacak bir şey yoksa anlamsal çakışmayı yakalayamaz. Projenin test komutunu tanımla ya da **Kontrol** alanına bir komut yaz.
- **Kontrol olarak yalnızca birim testleri.** Yukarıdaki örnekteki gibi hataların çoğu tip kontrolünde ya da derlemede çıkar. Kontrol komutuna tip kontrolünü de ekle.
- **Otomatik almayı ilk gün açmak.** Kuyruğun ne kadar güvenilir çalıştığını görmeden **Geçenleri kendiliğinden ana dala al** ayarını açma. Önce birkaç hafta onayla ilerle.
- **Dev dallar.** Kuyruk büyük dalları da alır, ama çakışma ve kırılma olasılığı dalın büyüklüğüyle artar. Ajanlara küçük ve odaklı işler ver.
- **Geri atılan işi görmezden gelmek.** Geri atılan bir iş genelde gerçek bir tasarım çatışmasına işaret eder. Akışına bak, gerekirse işi ajana notla geri gönder.

## Örnek bir gün

### Sabah

Üç iş için üç ajan başlatıyorsun: biri ödeme sayfasında, biri raporlama API’sinde, biri bağımlılık güncellemesinde. Her biri kendi worktree’sinde çalışıyor. Bir de geceden kalan bir CI kırığı var; onu bir otomasyon kuralı zaten yakalamış ve düzeltmeyi kuyruğa göndermiş.

### Öğleden önce

Ajanlar işlerini bitirdikçe İnceleme kutusunda kartları açıp bakıyorsun. Ödeme sayfası ve raporlama API’si iyi görünüyor; ikisini de **Birleştirme kuyruğuna gönder** ile kuyruğa alıyorsun. Kuyrukta artık üç iş var: CI düzeltmesi, ödeme sayfası ve raporlama API’si.

### Öğle

CI düzeltmesi kontrolü geçiyor, onay bekliyor. **Ana dala al** diyorsun. Ödeme sayfası, yeni ana dal üzerinde birleşiyor ve geçiyor. Raporlama API’si ise ödeme sayfasının değiştirdiği bir tiple çakışıyor; çözücü ajan devreye giriyor, çağrıları güncelliyor, kontrol yeşile dönüyor. Sen yalnızca iki onay veriyorsun.

### Öğleden sonra

Bağımlılık güncellemesi kontrolde iki düzeltme turundan sonra hâlâ kırmızı, iş geri atılıyor. Ana dal temiz. Akışa bakıp sorunun bir kütüphanenin büyük sürüm değişikliği olduğunu görüyorsun ve işi daha dar bir talimatla ajana geri veriyorsun.

## Kontrol listesi

- [ ] Projenin test komutu tanımlı mı, ya da **Kontrol** alanında bir komut var mı?
- [ ] Kontrol tip kontrolünü ve derlemeyi de kapsıyor mu?
- [ ] **Hedef dal** doğru mu? Boşsa varsayılan dal kullanılır.
- [ ] Birleştirme şekli ekibinin alışkanlığına uyuyor mu: Merge commit mi, Squash mı?
- [ ] **Geçenleri kendiliğinden ana dala al** bilinçli olarak mı açık ya da kapalı?
- [ ] GitHub depolarında bilgisayarda GitHub girişi yapılmış mı?
- [ ] Ajanlara verilen işler küçük ve odaklı mı?

## Sonuç

Paralel ajanlar hızlıdır, ama hız ana dalı kırarak gelirse kazanç kısa sürer. Birleştirme kuyruğu her dalı ana dalın son hâli üzerinde birleştirip test ederek, ayrı ayrı yeşil olan dalların birlikte ana dalı kırmasını önler. AgentVera’da kuyruk çakışmaları ve kırılan kontrolleri bir ajana çözdürür, sonucu kendisi doğrular ve son sözü varsayılan olarak sana bırakır.

Daha fazlası için:

- [Birleştirme kuyruğu](/ozellikler/birlestirme-kuyrugu/)
- [Paralel ekip](/ozellikler/paralel-ekip/)
- [Git ve GitHub](/ozellikler/git-ve-github/)
- [Git worktree ile paralel geliştirme](/blog/git-worktree-paralel-gelistirme/)
- [Yapay zekâ ile kod incelemesi](/blog/yapay-zeka-kod-incelemesi/)

AgentVera’yı denemek için [ana sayfaya](/) göz at.

## Sık sorulanlar

**Birleştirme kuyruğu nedir?** Ana dala girecek dalları tek tek sıraya koyan ve her birini ana dalın o anki hâli üzerinde birleştirip test eden bir düzendir. Böylece ayrı ayrı yeşil olan iki dal, birlikte ana dalı kırmaz.

**Her dal kendi testinden geçtiyse neden ana dal yine kırılıyor?** Çünkü her dal, ana dalın eski bir hâli üzerinde test edildi. Ana dal arada ilerlediyse iki değişiklik metin olarak çakışmasa bile anlamca çakışabilir; bunu ancak birleşmiş sonucu test ederek görürsün.

**AgentVera’nın birleştirme kuyruğu çakışmada ne yapar?** Bir çözücü ajan açar. Ajan iki tarafın amacını koruyarak çakışmayı çözer ve commit eder; AgentVera ardından çakışma işareti kalmadığını ve dalın gerçekten birleştiğini kontrol eder. Çözülemezse iş geri atılır.

**Kontrolü geçen dal kendiliğinden ana dala girer mi?** Varsayılan olarak hayır. “Geçenleri kendiliğinden ana dala al” kapalıyken kontrolleri geçen dal onayını bekler; “Ana dala al” deyince ana dala alınır. İstersen bu ayarı açabilirsin.

**Birleştirme kuyruğu hangi planda var?** Birleştirme kuyruğu Pro ve Team planlarında var. Kuyruk masaüstü uygulamasında, Detaylar → Otomasyon → Birleştirme kuyruğu sekmesindedir.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
