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.
| Nerede | Claude Code varsayılan olarak ne ekler | Alt 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 PR | claude.ai oturum bağlantısı, commit'lerde Claude-Session trailer'ı olarak | attribution.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ğer | Etki |
|---|---|
"commit": "" | Commit'lerde trailer yok |
"pr": "" | Pull request açıklamalarında atıf satırı yok |
"sessionUrl": false | Bulut 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.
| Dosya | Kime uygulanır |
|---|---|
~/.claude/settings.json | Sana, bu makinedeki tüm projelerde |
Projedeki .claude/settings.json | Dosyayı commit ettiğin anda projede çalışan herkese |
Projedeki .claude/settings.local.json | Sana, yalnızca bu projede. Claude Code onu oluştururken git dışında tutar |
| Kuruluşunun dağıttığı managed settings | Kuruluş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": falsehem commit trailer'ını hem de pull request satırını gizler;attribution.commitveyaattribution.prbelirlendiği anda Claude CodeincludeCoAuthoredByanahtarı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/codexkaynak kodunda Codex, çalışma alanın için attribution etkinleştirildiğinde commit'lereCo-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-authorve--no-attribute-committerbunu kapatır,--attribute-co-authored-byise bunun yerine birCo-authored-bytrailer'ı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.
AgentsRoom'u İndir
Tüm yapay zeka ajanlarını, tüm projelerinde, tek bir pencereden çalıştır.
Yardımcı uygulama: hareket halindeyken ajanlarını izle
Claude, Codex, Antigravity CLI veya başka bir AI sağlayıcı kullan.
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.

Okumaya devam et
Claude'da kaç token kaldı? Bakmanız gereken iki ekran.
Claude aboneliğiniz token cinsinden tanımlanmıyor, bu yüzden hiçbir ekran size bir token bakiyesi göstermez. İşte gerçekte neyi ölçtüğü, onu gerçekten gösteren iki ekran, siz yazmazken neden azaldığı ve Eylül 2026'daki haftalık pencere değişikliğinin haftanıza ne yaptığı.
Makaleyi okuBir Geliştirici Ekibi Üzerinde AI Kodlama Ajanlarını Nasıl Ölçeklendirirsiniz
Bir kodlama ajanına sahip bir geliştirici, bir verimlilik hikayesidir. Yirmi ajanla beş geliştirici, bir koordinasyon problemidir. Bir ekip büyüdüğünde ilk olarak neyin kırıldığını ve tutan ayarları burada bulabilirsiniz: taahhüt edilmiş bağlam dosyaları, net dosya sahipliği, patlama yarıçapına göre inceleme ve gerçekten görebileceğiniz maliyet.
Makaleyi okuClaude Code Modları: Ne Oldukları ve Her Ajanla Birlikte Sunduğumuz Mod
Mod, JavaScript'i Claude Code'un içinde çalışan bir eklentidir. Neler yapabildiği, üç dosyası, nasıl yüklenip test edildiği ve her ajanımızda bulunan mod.
Makaleyi oku