Git commit'lerinden Co-Authored-By Claude satırı nasıl kaldırılır

Claude Code, commit'lerini bir Co-Authored-By trailer'ı ile, pull request'lerini de bir Generated with Claude Code satırı ile imzalar. Bunları kaldıran ayar, ayarın konacağı dosya ve zaten push ettiğin commit'leri temizlemenin yolu.

Claude Code'dan commit yapmasını istiyorsun ve mesaj senin yazmadığın bir satırla bitiyor: Co-Authored-By: Claude Opus 4.6 <[email protected]>. Onunla bir pull request aç, açıklama bir robot emojisi ve “Generated with Claude Code” ile biter. İkisi de bug değil. İkisi de tek bir ayardan geliyor ve onu bir dakikada değiştirebilirsin.

Bu rehber ayarı, sana, tek bir projeye ya da tüm ekibe uygulanması için hangi dosyaya konacağını, hâlâ duruyor olabilecek eski anahtarı ve satırı zaten taşıyan commit'lerin nasıl temizleneceğini anlatıyor. Claude Code hakkındaki bilgiler, 12 Kasım 2026'da Claude Code 2.1.318 kuruluyken okunan ayarlar referansından geliyor.

Kısa cevap. Bunu ~/.claude/settings.json dosyasına koy:

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}

Yeni commit'ler artık trailer taşımaz, yeni pull request'ler de satırı kaybeder. Değişiklikten önce yapılan commit'ler, sen onları yeniden yazana kadar satırı korur.

Claude Code neyi, nereye ekliyor

Claude Code atıfı üç yere ekler. Her birinin attribution altında kendi alt anahtarı vardır.

NeredeClaude Code varsayılan olarak ne eklerAlt anahtar
Commit mesajıBir trailer: Co-Authored-By: <model> <[email protected]>attribution.commit
Pull request açıklamasıBir robot emojisi ve “Generated with Claude Code”attribution.pr
Bulut ya da Remote Control oturumundan commit veya PRclaude.ai oturum bağlantısı, commit'lerde Claude-Session trailer'ı olarakattribution.sessionUrl

Trailer'daki ad, commit anında kullanılan modelin adıdır. Satırın bir hafta Claude Opus 4.6, ertesi hafta Claude Sonnet 4.6 demesinin ve bu sorunla ilgili aramaların bu kadar çok model adı geçirmesinin nedeni bu. Claude Code bir Claude modelini tanıyıp sürümünü doğrulayamadığında yalnızca Claude yazar. Özel bir ANTHROPIC_BASE_URL arkasındaki model hiç Claude modeli değilse Claude Code yazar. Commit'i bir alt ajan yaptığında, trailer alt ajanın modelini adlandırır.

Bu satır bir git hook'u değil. Claude Code, Claude kendisi bir commit ya da pull request yazdığında Claude'dan onu eklemesini ister. Bir terminalde senin kendin yaptığın ya da başka bir aracın yaptığı commit bu satırı asla almaz.

attribution ayarıyla kapat

attribution üç parçalı bir nesne ya da hepsi için false alır.

DeğerEtki
"commit": ""Commit'lerde trailer yok
"pr": ""Pull request açıklamalarında atıf satırı yok
"sessionUrl": falseBulut ya da Remote Control oturumundan yapılan commit'lerde ve pull request'lerde claude.ai oturum bağlantısı yok
"attribution": falseÜçü birden gizlenir. Claude Code 2.1.281 veya sonrasını gerektirir

Kısa biçim cazip, ama önce sürüm satırını oku. 2.1.281'den eski bir Claude Code "attribution": false değerini reddeder ve anahtarı yok saymakla kalmaz: onu içeren ayar dosyasının tamamını, izinlerin, hook'ların ve modelinle birlikte atlar. Aynı dosya farklı sürümlere sahip makinelerde okunuyorsa uzun biçimi kullan:

{
  "attribution": {
    "commit": "",
    "pr": "",
    "sessionUrl": false
  }
}

Dosyanın yüklendiğini kontrol etmek için /status çalıştır: Setting sources satırı Claude Code'un okuduğu her dosyayı listeler. Zaten açık olan bir oturum satırı eklemeye devam ederse yeni bir oturum başlat.

Hangi dosya: sen, tek proje ya da tüm ekip

Anahtar her ayar dosyasında çalışır. Kime uygulanacağına dosya karar verir.

DosyaKime uygulanır
~/.claude/settings.jsonSana, bu makinedeki tüm projelerde
Projedeki .claude/settings.jsonDosyayı commit ettiğin anda projede çalışan herkese
Projedeki .claude/settings.local.jsonSana, yalnızca bu projede. Claude Code onu oluştururken git dışında tutar
Kuruluşunun dağıttığı managed settingsKuruluşun onu dağıttığı herkese

İki dosya anahtarı belirlediğinde üstteki kazanır: managed settings, sonra komut satırındaki --settings, sonra projenin yerel dosyası, sonra projenin paylaşılan dosyası, sonra senin kullanıcı dosyan. Bu sıradan iki durum çıkar. Ekibin trailer'ı bilerek açık tutan bir dosyayı commit ederse, kendi .claude/settings.local.json dosyan başkaları için hiçbir şeyi değiştirmeden senin için onu geçersiz kılar. Kuruluşun attribution'ı managed settings içinde belirlerse, senin yazdığın hiçbir şey onu değiştirmez.

CLAUDE.md dosyanda Claude'a satırı eklememesini de söyleyebilirsin; Claude Code da Claude'a, satır managed settings'ten gelmiyorsa, atıf konusundaki kendi talimatlarının onun varsayılan satırlarından önce geldiğini söyler. Fark doğadadır: ayar, Claude Code'un istediği metni kaldırır; talimat ise modelin okuyup uyguladığı bir metindir. Ayarı kullan.

Eski includeCoAuthoredBy anahtarı

attribution'dan önce bu ayarın adı includeCoAuthoredBy idi. Claude Code 2.0.62'den beri kullanımdan kaldırılmış durumda ve hâlâ okunuyor:

  • "includeCoAuthoredBy": false hem commit trailer'ını hem de pull request satırını gizler;
  • attribution.commit veya attribution.pr belirlendiği anda Claude Code includeCoAuthoredBy anahtarını yok sayar ve ikisinden belirlemediğin hangisiyse onun için varsayılan metnini kullanır.

Trailer'ın geri gelmesinin olağan nedeni bu ikinci kural. includeCoAuthoredBy: false vardı, sonra yalnızca PR satırını kaldırmak için "attribution": {"pr": ""} ekledin ve commit trailer'ı yeniden ortaya çıktı, çünkü artık kararı attribution veriyor ve commit belirlenmemiş. attribution'a geç ve iki parçayı da belirle.

Kaldırmak yerine değiştir

Bazı ekipler hangi commit'lerin yapay zeka yardımıyla yapıldığını kayıt altında tutmak ister, sadece bu satırla değil. attribution.commit trailer'lar dahil her metni kabul eder. Git trailer'ları yalnızca mesajın son paragrafından okur, bu yüzden onları sonda bir arada tut:

{
  "attribution": {
    "commit": "Assisted-by: Claude Code"
  }
}

Bunu projenin .claude/settings.json dosyasına commit et, her ekip arkadaşının Claude Code'u aynı satırı yazar.

Trailer'ı zaten taşıyan commit'ler

Ayar yalnızca kendisinden sonra yazılan commit'leri değiştirir. Zaten var olanlar için doğru araç, ne kadar ileri gittiklerine bağlıdır.

Son commit, henüz push edilmemiş: amend et ve satırı editörde sil.

git commit --amend

Paylaşmadığın bir branch'teki birkaç commit: rebase yap ve her birinin mesajını yeniden yaz.

git rebase -i origin/main

Tüm geçmiş: git filter-repo her commit mesajını tek geçişte yeniden yazar. Temiz bir clone ister ve ayrıca kurulması gereken bir araçtır:

git filter-repo --message-callback '
return re.sub(rb"(?mi)^Co-Authored-By: Claude[^\n]*<noreply@anthropic\.com>\n?", b"", message).rstrip(b"\n") + b"\n"
'

Yeniden yazmanın bir bedeli var ve paylaşılan bir branch'te bu bedel genellikle satırınkinden yüksektir. Değiştirilen ilk commit'ten sonraki her commit hash'i yenidir: push edilmiş bir branch force push gerektirir, her ekip arkadaşının yeni geçmişten baştan başlaması gerekir, eski commit'lere dayanan açık pull request'ler bozulur ve imzalı commit'ler imzalarını kaybeder. Merge'den önce kişisel bir branch'te bunu yap. Başkalarının zaten pull ettiği bir main branch'inde ise onu olduğu gibi bırak ve sonrası için anahtarı ayarla.

Trailer GitHub'da ne yapar

GitHub Co-authored-by trailer'larını okur ve e-posta adresi bir GitHub hesabına aitse ortak yazarı commit üzerinde gösterir. Haziran 2025'te anthropics/claude-code deposundaki iki issue (#1653 ve #1655), bu adres üzerinden Anthropic ile ilgisi olmayan bir GitHub hesabına atfedilen commit'leri bildirdi; ikisi de kapatıldı. Adres belirli bir günde hangi hesaba çıkarsa çıksın, trailer'ı kaldırmak ortak yazarı sonraki commit'lerden kaldırır, yalnızca onlardan.

Diğer CLI'lar ne yapıyor

İşini imzalayan tek araç Claude Code değil ve her CLI'ın kendi kapatma ayarı var.

  • Codex. 12 Kasım 2026'da okuduğumuz openai/codex kaynak kodunda Codex, çalışma alanın için attribution etkinleştirildiğinde commit'lere Co-authored-by: Codex <[email protected]>, pull request gövdelerine de “Generated with Codex.” ekler; bu, bir oturum başladığında aldığı bir politikadır. Politika kapalıyken Codex'e iki satırdan hiçbirini eklememesi söylenir.
  • Aider. Bir trailer eklemek yerine git yazar ve committer adlarının sonuna “(aider)” ekler. --no-attribute-author ve --no-attribute-committer bunu kapatır, --attribute-co-authored-by ise bunun yerine bir Co-authored-by trailer'ına geçer.

AgentsRoom'da biz ne yapıyoruz

Her gün aynı depolar üzerinde birden fazla ajan çalıştırıyoruz, Claude Code'u Codex'in ve diğerlerinin yanında, ve commit onların işinin buluştuğu yer. İki durum var ve aynı kurallara uymuyorlar.

Bir ajan terminalinde kendisi commit yaptığında mesajı onun CLI'ı yazar, bu yüzden CLI'ın kendi ayarı geçerlidir: Claude Code için attribution, Codex için çalışma alanı politikası, Aider için bayraklar.

AgentsRoom'dan commit yaptığında, yani Changes sekmesinden, inceleme modundan, bir ajan kapanırken yapılan otomatik commit'ten ya da mobil uygulamanın Changes ekranından, commit'i AgentsRoom yazar ve hiçbir CLI kendi trailer'ını eklemez. En alta AgentsRoom'un commit imzası gelir ve onu ayarlayan sensin. Varsayılan olarak, dosyaları commit'te bulunan her ajanın rolünü ve harcadığı süreyi içeren tek bir satır ekler:

bug : Fix the login redirect

AgentsRoom-Agent: fullstack; time=42m

Her parçanın Ayarlar > Git > Commit imzası içinde ayrı bir aç/kapat düğmesi var, hesabın, bir proje klasörü ya da tek bir proje için: ajanın rolü, harcanan süre ve varsayılan olarak kapalı olan maliyet, kotandan kullanılan pay ve yazdığın prompt'lar. Ajan ve Harcanan süre'yi kapat, commit'lerin tam olarak eskisi gibi olur. Kendi depolarımızda rolü açık tutuyoruz: dört CLI'ın commit yaptığı bir depoda model adı kodu hangi modelin yazdığını, rol ise hangi işi yaptığını söyler; bir değişiklik üç hafta sonra bir şeyi bozduğunda aradığımız da budur. Herkese açık changelog'umuz da her sürümde hangi ajanların çalıştığını göstermek için aynı satırı okur.

Bir değişikliğin arkasındaki gerekçeyi de istiyorsan, Commit Context aynı trailer bloğuna ajanın konuşmasına giden bir bağlantı ekler. Mesajı hiç yazmamayı tercih ediyorsan da yapay zeka commit mesajları onu diff'ten taslak olarak hazırlar.

Sık sorulan sorular

Commit'lerimden Co-Authored-By Claude satırını nasıl kaldırırım?

~/.claude/settings.json dosyasına "attribution": {"commit": "", "pr": ""} ekle. Claude Code bundan sonra yazdığı commit'lere Co-Authored-By trailer'ını, açtığı pull request'lere de Generated with Claude Code satırını eklemeyi bırakır, o makinedeki tüm projelerde. Claude Code 2.1.281 veya sonrasında "attribution": false tek bir değerle her şeyi gizler. Değişiklikten önce yapılan commit'ler trailer'larını korur.

includeCoAuthoredBy hâlâ çalışıyor mu?

Hâlâ çalışıyor, ama Claude Code 2.0.62'den beri kullanımdan kaldırılmış durumda. includeCoAuthoredBy: false hem commit trailer'ını hem de pull request satırını gizler; daha yeni attribution anahtarı commit veya pr değerini belirlerse karar attribution'a geçer. Yeni bir yapılandırma attribution kullanmalı.

Trailer neden Claude yerine Claude Opus 4.6 veya Sonnet 4.6 diyor?

Trailer, commit anında kullanılan modeli adlandırır, bu yüzden modelin değiştikçe o da değişir. Claude Code, tam sürümü doğrulayamadığında yalnızca Claude yazar; özel bir ANTHROPIC_BASE_URL arkasındaki model bir Claude modeli değilse Claude Code yazar. Ayar bu varyantların hepsini kaldırır.

Zaten yaptığım commit'lerden trailer'ı nasıl kaldırırım?

Son commit için git commit --amend çalıştır ve satırı sil. Henüz push edilmemiş birkaç commit için git rebase -i kullan ve her birinin mesajını yeniden yaz. Tüm geçmiş için message callback ile kullanılan git filter-repo, satırı her commit'ten temiz bir clone üzerinde kaldırır. Yeniden yazmak, dokunulan ilk commit'ten sonraki her commit'in hash'ini değiştirir: push edilmiş bir geçmiş force push gerektirir ve her ekip arkadaşının yeni geçmişten baştan başlaması gerekir.

Şirketim attribution'ı zorla geri açabilir mi?

Evet. Bir kuruluşun dağıttığı managed settings, senin kontrol ettiğin tüm dosyaların üstünde yer alır; orada belirlenen bir attribution değeri kullanıcı, proje ve yerel ayarlarına üstün gelir. Claude Code içinde /status çalıştır: Setting sources satırı, sana yönetilen bir kaynağın uygulanıp uygulanmadığını gösterir.

Trailer'ı kaldırmak yapay zeka kullandığımı gizler mi?

Commit mesajından tek bir satırı kaldırır, başka hiçbir şeyi değil. Ayarı Claude Code'un kendisi sunar ve dokümantasyonu satırı korumanı istemez. Öte yandan bazı projeler ve işverenler katkıda bulunanlardan yapay zeka yardımını belirtmelerini ister: orada kapatmadan önce push ettiğin deponun kurallarını oku.

DevOps Mühendisiİçerik YazarıÖn Yüz GeliştiriciSatış UzmanıArka Uç GeliştiriciKoç ve EğitmenYazılım MimarıHukuk MüşaviriQA MühendisiFinans ve İdari İşlerTam Yığın GeliştiriciKreatif TasarımcıMobil GeliştiriciAraştırmacıGüvenlik MühendisiİK ve İşe Alım
Proje YöneticisiÇevirmenGit UzmanıVeri AnalistiSEO UzmanıMuhasebeciYerelleştirme Uzmanıİletişim ve Halkla İlişkilerBeyin Fırtınası UzmanıOperasyon ve LojistikPazarlama UzmanıMüşteri DesteğiProje asistanıSatın Alma UzmanıTopluluk YöneticisiKişisel Asistan

AgentsRoom'u İndir

Tüm yapay zeka ajanlarını, tüm projelerinde, tek bir pencereden çalıştır.

AgentsRoom'u İndirÜcretsiz

Yardımcı uygulama: hareket halindeyken ajanlarını izle

Claude, Codex, Antigravity CLI veya başka bir AI sağlayıcı kullan.

Uzantıyı yükle
Chrome Web Store

Hataları ve istekleri doğrudan genel backloguna gönder.

Bir sohbet gibi okuduğun ajanlar

Her ajanın bir rolü, bir yüzü ve mesajlaşma uygulaması gibi okuduğun bir konuşması var.

Konuşma görünümü

AgentsRoom konuşma görünümü: bir yapay zeka kodlama ajanının çalışması sohbet akışı olarak
Çoklu proje
Çoklu sağlayıcı
Çoklu ajan
Canlı durum
Diff ve commit
Mobil uygulama
Canlı önizleme
Ajan ekipleri
Tarayıcı otomasyonu
Backlog odaklı dev
Prompt kütüphanesi
Beceri kütüphanesi
Tüm özellikleri gör

Okumaya devam et