Git worktree ile paralel geliştirme ve ajanlar

Git worktree ile paralel geliştirme: her yapay zeka ajanına ayrı çalışma ağacı ver, çakışmaları önle ve her turu geri alınabilir tut. Komutlar ve iş akışı.

Solviera Teknoloji 5 dk okuma Read in English

Git worktree ile paralel geliştirme, aynı depoda birden fazla işi birbirine karıştırmadan yürütmenin en temiz yoludur. Yapay zekâ ajanlarıyla çalışırken bu daha da önemli hale gelir: iki ajan aynı klasörde çalışırsa birinin değişikliği diğerininkinin üstüne yazılır, testler yarım kalmış kodla çalışır ve hangi değişikliğin kime ait olduğu belirsizleşir.

Bu yazıda git worktree’nin ne olduğunu, ajanlarla nasıl kullanılacağını ve her ajan turunu geri alınabilir tutmanın yolunu anlatıyorum.

Git worktree nedir?

Git worktree, aynı deponun farklı dallarını ayrı klasörlerde aynı anda açmanı sağlar. Klasörlerin her birinin kendi çalışma dosyaları vardır, ama .git verisi ortaktır. Bir worktree’de attığın commit diğerinden anında görünür.

Klonla farkı:

WorktreeAyrı klon
Disk kullanımıAz (geçmiş paylaşılır)Deponun tamamı kadar
Commit görünürlüğüAnındaFetch/push gerekir
Aynı dal iki yerdeEngellenir (güvenli)Mümkün (karışıklık riski)
KurulumTek komutKlon ve ayar

Temel komutlar

Yeni bir dal açarak worktree oluşturmak:

git worktree add ../acme-web-auth -b auth-refactor

Var olan bir daldan worktree açmak:

git worktree add ../acme-web-billing billing-v2

Worktree’leri listelemek ve kaldırmak:

git worktree list
git worktree remove ../acme-web-auth
git worktree prune

prune, klasörü elle silinmiş worktree’lerin kayıtlarını temizler.

Git worktree ile paralel geliştirme: ajan başına bir ağaç

Paralel ajanlar için kural basit: çakışma riski olan her ajana ayrı bir worktree ver.

Örnek düzen:

AjanGörevWorktreeDal
Mimar (Claude Code)Auth yeniden yapılanması../acme-web-authauth-refactor
Arayüz (Gemini CLI)Ayarlar sayfası../acme-web-settingssettings-ui
Testçi (Codex)Auth testleri../acme-web-authauth-refactor

Testçi ile Mimar aynı worktree’yi paylaşıyor; çünkü Testçi Mimar’ın değişikliğini test ediyor ve yalnızca tests/ altında çalışıyor. Arayüz ajanı ise tamamen ayrı bir işte, ayrı bir dalda.

Bu düzenin faydaları:

  • Ajanlar birbirinin yarım dosyalarını görmez.
  • Her iş kendi dalında, kendi pull request’iyle birleşir.
  • Bir işi bırakmak dalı silmek kadar kolaydır.

AgentVera’da worktree yönetimi

Worktree’leri komut satırından yönetmek mümkün, ama ajan sayısı artınca takip zorlaşır. AgentVera’da sağ paneldeki Worktree’ler sekmesi şunları sağlar:

  1. Yeni ya da var olan daldan worktree oluşturma.
  2. Her worktree için değişiklik sayısı, ana dala göre ileri/geri durumu ve son commit.
  3. Worktree’de doğrudan ajan başlatma.
  4. Kilitleme, prune, zorla kaldırma ve dalı silme.

Yeni ajan oluştururken de çalışma alanı olarak bir worktree seçebilirsin. Ajanın panelinde hangi dalda çalıştığı küçük bir etiketle görünür. Worktree’lerde ajanların değiştirdiği Markdown dosyaları da Spec’ler panelinde plan ve doküman olarak listelenir.

Her turu geri alınabilir tutmak

Worktree’ler ajanları birbirinden ayırır. Ama bir ajan kendi worktree’sinde yanlış bir yöne giderse ne olacak?

Geleneksel çözüm sık commit atmaktır; fakat ajanların her adımını commit’lemek geçmişi kirletir. AgentVera’daki turlar başka bir yol izler:

  • Her turun başında çalışma klasörünün anlık görüntüsü gizli bir git referansına alınır.
  • Dalına, index’ine ve stash’ine dokunulmaz.
  • Ajan başına son 60 tur saklanır.
  • Panelin Seçenekler menüsündeki Turlar’dan bir turun değiştirdiği dosyaları görürsün.
  • Bu turu geri al ile o turdaki değişiklikleri geri alırsın; istersen geri almayı da geri alırsın.

Böylece ajanı rahatça deneyebilirsin: sonuç beğenilmezse tek tıkla bir önceki duruma dönersin.

Birleştirmeden önce

Paralel dallarda biten işleri ana dala almadan önce:

  • Her worktree’de testleri çalıştır.
  • Farkları incele; otomatik kod incelemesi bu adımı hızlandırır.
  • Commit mesajlarını düzenle. AgentVera’nın Git paneli hazırlanan farktan deponun stiline uyan mesajı Claude Haiku ile yazabilir.
  • Dalı GitHub’a gönder ve pull request aç; Git panelindeki GitHub kartı mevcut dalın pull request’ini gösterir ya da yenisini açar.

Sık yapılan hatalar

  • Aynı dalı iki worktree’de açmaya çalışmak. Git buna izin vermez; bu bir koruma.
  • Silinen klasörlerin kayıtlarını bırakmak. git worktree prune ile temizle.
  • node_modules’u unutmak. Her worktree kendi bağımlılıklarını kurmalı.
  • Ajan turlarını commit’lerle karıştırmak. Turlar geri alma içindir; kalıcı geçmiş için yine commit at.

Örnek bir gün: üç ajan, iki dal

Teoriyi bir çalışma günü üzerinden somutlaştıralım.

Sabah: kurulum

Ana klasörde main dalı açık. İki iş var: auth yeniden yapılanması ve ayarlar sayfası. İki worktree açarsın:

git worktree add ../acme-web-auth -b auth-refactor
git worktree add ../acme-web-settings -b settings-ui

Her worktree’de bağımlılıkları kurarsın:

cd ../acme-web-auth && pnpm install
cd ../acme-web-settings && pnpm install

Mimar ve Testçi auth-refactor worktree’sinde, Arayüz ajanı settings-ui worktree’sinde başlar.

Öğlen: bir tur yanlış gidiyor

Arayüz ajanı ayarlar sayfasını düzenlerken ortak bir bileşenin stilini de değiştirir. Bu kapsam dışı. Turlar listesinde son turun değiştirdiği dosyaları görürsün, turu geri alırsın ve ajana ortak bileşene dokunmamasını söylersin. Dalın geçmişi temiz kalır; çünkü geri alma bir commit değil, gizli referanstaki görüntüye dönüştür.

Akşam: birleştirme

Auth işi bitince testleri çalıştırırsın, incelemeye bakarsın ve dalı gönderirsin. Ayarlar sayfası henüz bitmediyse onun worktree’si açık kalır; ertesi gün ajan aynı klasörden devam eder. AgentVera uygulamayı kapatıp açtığında Claude ve Codex ajanlarını CLI geçmişinden aynı konuşmaya döndürür.

Worktree’lerde dikkat edilecek ortam ayrıntıları

Paralel worktree’lerde en sık takılan noktalar uygulama koduyla değil, ortamla ilgilidir:

  • Port çakışması: İki worktree’de aynı anda geliştirme sunucusu açarsan ikisi aynı portu istemesin. Ortam değişkeniyle farklı portlar ver.
  • Ortam dosyaları: .env gibi git’e girmeyen dosyalar yeni worktree’ye kendiliğinden gelmez; kopyalaman gerekir.
  • Veritabanı: İki dal farklı migration’lar içeriyorsa aynı yerel veritabanını paylaşmak sorun çıkarabilir.

AgentVera’nın Portlar paneli, dinlenen portları ve hangi ajanın başlattığını gösterir; hangi worktree’nin hangi sunucuyu açtığını buradan takip edebilirsin.

Ajanı kopyalamak ve konuşmayı çatallamak

Bazen aynı problemi iki farklı yaklaşımla denemek istersin. AgentVera’da bir ajanı kopyaladığında araç, hesap, model, efor, rol, grup ve worktree birebir kopyalanır; istersen konuşma geçmişi de çatallanır (Claude’da --fork-session, Codex’te fork).

Bunu worktree’lerle birleştirmek güçlü bir deneme düzeni kurar: aynı konuşmadan çatallanan iki ajanı iki ayrı worktree’de çalıştırırsın, sonuçları karşılaştırırsın ve beğendiğin dalı birleştirirsin. Diğer dalı silmek, denemeyi iz bırakmadan temizler.

Kontrol listesi

  • Çakışma riski olan her ajanın kendi worktree’si var mı?
  • Her worktree’nin bağımlılıkları kurulu mu?
  • Ajanların rollerinde hangi klasörde çalışacakları yazılı mı?
  • Birleştirmeden önce testler ve inceleme yapıldı mı?

Sonuç

Git worktree ile paralel geliştirme, ajanları fiziksel olarak birbirinden ayırır; turlar ise her ajanın kendi içinde yaptığı değişiklikleri geri alınabilir tutar. İkisi birlikte, birden fazla ajanla güvenle çalışmanın temelini oluşturur.

AgentVera worktree’leri, turları ve Git panelini aynı pencerede toplar. Paralel kodlama ajanları yazısıyla birlikte okuyabilir, ücretsiz planla başlayabilirsin.

Sık sorulanlar

Git worktree nedir?

Aynı depodan farklı dalları ayrı klasörlerde aynı anda açmanı sağlayan git özelliğidir. Her klasörün kendi çalışma dosyaları olur, depo geçmişi ortaktır.

Worktree ile klon arasındaki fark nedir?

Klon deponun tam bir kopyasıdır. Worktree aynı .git verisini paylaşır; daha az yer kaplar ve dallar arasında commit’ler anında görünür.

Ajanın bir turunu nasıl geri alırım?

AgentVera her turun başında çalışma klasörünün görüntüsünü gizli bir git referansına alır. Seçenekler → Turlar’dan bir turun değiştirdiği dosyaları görür ve turu geri alırsın.

Turları geri almak dalımı ya da stash’imi etkiler mi?

Hayır. Görüntüler gizli bir referansta tutulur; dalına, index’ine ve stash’ine dokunulmaz.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer yazılar