Git worktree: birden fazla yapay zeka ajanını çakışmadan çalıştırmanın temeli
Ajanların paralel çalışınca birbirinin işini eziyor. Git worktree bunu iki komutta çözer. İşte nasıl kullanacağın.
Aynı repo üzerinde iki ajan başlatıyorsun. Biri package.json dosyasını düzenliyor, diğeri de. Otuz saniye sonra kodun, kimsenin merge edemeyeceği bir hale geliyor.
Bu, ajanlarındaki bir bug değil. Sorun, hepsinin aynı klasörde çalışması.
Çözüm, Git'in yıllardır içinde olan ama neredeyse kimsenin kullanmadığı bir araç: git worktree.
Sorun: 3 ajan, 1 repo, imkansız bir merge
Normal bir Git reposu tek bir klasördür ve aynı anda tek bir branch checkout edilir. main üzerinde çalışırsın, branch değiştirirsin, bütün klasör baştan aşağı değişir.
Şimdi o klasörün içine üç otonom ajan koy. Aynı anda yazıyorlar. A ajanı bir dosya oluşturuyor, B ajanı temiz başlamak için git checkout çalıştırıyor ve A'nın yarım kalan işini siliyor. Sonunda elinde yarım yazılmış dosyalar, bozulmuş bir index ve kendin kodlasan harcayacağından daha uzun sürede çözeceğin çakışmalar kalıyor.
Paralellik, ancak ajanlar birbirine dokunmazsa sana zaman kazandırır.
Git worktree nedir
Worktree, aynı repoya bağlı ikinci bir çalışma klasörüdür.
Aynı history, aynı remote, ama her worktree'nin kendi checkout edilmiş branch'i ve diskte kendi dosyaları var. Yan yana beş tane tutabilirsin, her biri farklı bir branch üzerinde, birbirinin ayağına dolanmadan.
Tek bir .git, birden fazla çalışma alanı. Hepsi bu.
Pratikte ajan başına bir worktree
Kurulum şöyle. Reponun içinden:
git worktree add ../project-auth -b feature/auth
git worktree add ../project-billing -b feature/billing
git worktree add ../project-export -b feature/export
Az önce üç klasör oluşturdun, her biri kendi branch'inde. Her birinde bir ajan başlatıyorsun:
cd ../project-auth && claude
cd ../project-billing && codex
Her ajanın kendi klasörü, kendi branch'i, kendi dosyaları var. Auth ajanı, billing ajanının ne yaptığını asla görmeyecek. Çakışma imkansız.
Bir özellik hazır olunca branch'ini gözden geçirip merge ediyorsun. Sonra temizliyorsun:
git worktree remove ../project-auth
Klasör gidiyor, branch history'nde kalıyor. Tertemiz.
Bilmen gereken 3 tuzak
Birinci tuzak: ortak merkezi dosya. İki özellik de aynı routes.ts dosyasına ya da aynı veritabanı şemasına dokunmak zorundaysa, worktree seni kurtarmaz, merge sırasında çakışmayı yine yersin. Herkesin paylaştığı dosyalara bir ajan dokunur, diğerleri ya bekler ya da etrafından dolanır.
İkincisi: yoldan çıkan branch'ler. Ajanların çalışırken main ilerlemeye devam ediyor. Üç gün sonra branch'lerin geride kalıyor ve merge etmek can sıkıcı bir hal alıyor. Erken ve sık rebase yap, ya da oturumları kısa tut.
Üçüncüsü: unutulan temizlik. Her worktree diskinde gerçek bir klasör. Günde on tane açıp hiç temizlemezsen üst klasörün okunamaz hale geliyor. git worktree list ortalıkta ne varsa gösterir, git worktree prune ölü olanları siler.
Asıl soru: beş klasörü kim takip ediyor?
Worktree dosya çakışmalarını çözer. Zihinsel yükünü çözmez.
Beş klasörün, beş ajanın, beş terminalin var. Hangisi senin incelemeni bekliyor? Hangisi sen başka yere bakarken on dakika önce bitti? Hangisi çöktü?
İşte terminalde kalırsan, ajan başına bir worktree yaklaşımının sınırına burada toslarsın. Teknik çakışmayı çözdün, ama takip edeceğin pencere sayısını katladın.
AgentsRoom her ajanı, hangi worktree'de çalışırsa çalışsın, durumu ve rengiyle birlikte bir kart üzerine yerleştirir. Bekleyen bir ajan kırmızıya döner ve sana haber verir. Worktree'lerin üzerine kurulan tam yöntem için kontrolü kaybetmeden 3 ila 8 ajanı nasıl paralel çalıştıracağını oku.
Akılda kalması gereken
Bir ajan, bir worktree, bir branch. Ciddi çok ajanlı çalışmanın temel kuralı bu.
Komutlar üç satıra sığıyor, faydası anında geliyor: ajanların birbirinin işini ezmeyi bırakıyor. Üstüne hangisinin sana ihtiyacı olduğunu söyleyen bir görünüm ekle, işte o zaman aklını kaçırmadan beş işi gerçekten paralel yürütebilirsin.
AgentsRoom'u Indirin
Claude ajanlarinizi tum projelerinizde tek bir pencereden calistirin.
Yardımcı uygulama: hareket halindeyken ajanlarinizi izleyin
Claude, Codex, Gemini CLI veya başka bir AI sağlayıcı kullan.
Hataları ve istekleri doğrudan genel backlogunuza gönderin.
AgentsRoom'a kısa bir bakış.