Ana içeriğe atla

Git Dalı Silme: Yerel ve Uzak Dalları Nasıl Kaldırırsınız

Bu rehber, Git’te dalların—yerelde ve uzakta—en iyi uygulamalara uyarak, kazara veri kaybını önleyecek şekilde nasıl silineceğini açıklar.
Güncel 16 Nis 2026  · 15 dk. oku

Benim gibi aktif bir Git kullanıcısıysanız, muhtemelen bir sürü eski dal biriktirmişsinizdir. Bazıları birleştirilmiş, bazıları yarım kalmış ve bazılarını oluşturduğunuzu bile hatırlamıyorsunuzdur. Bu dalları tutmak ilk bakışta sorun gibi görünmeyebilir, ancak zamanla havuzunuzu kalabalıklaştırır ve aktif çalışmaları takip etmeyi zorlaştırır.

Bu rehberde, Git dallarını yerelde ve uzakta nasıl sileceğinizi, bunu yapmanın en güvenli yollarını ve dikkat edilmesi gereken olası tuzakları anlatacağım.

Bir Git Dalını Silmek Ne İşe Yarar?

Git dalları tasarım gereği geçicidir. Yeni özellikler, hata düzeltmeleri veya denemeler üzerinde, ana kod tabanını etkilemeden çalışmanızı sağlarlar. Ancak bir dal amacını yerine getirdikten sonra onu tutmak gereksiz kalabalık yaratır. Dalları silmek, Git iş akışınızı temiz ve yönetilebilir tutmak için iyi bir temizlik alışkanlığıdır.

“Dal silmek” ile “çalışmanızı silmek” aynı şey değildir, bunu vurgulamak isterim. Git’te bir dal sildiğinizde commit’leri değil, onlara olan referansı kaldırırsınız. Nasıl işlediğine bakalım:

  • Yerel bir dalı silmek dalı kişisel havuzunuzdan kaldırır. Başka hiçbir dal veya etiket bu commit’lere referans vermiyorsa, Git’in çöp toplaması tarafından zamanla temizlenebilirler.
  • Uzak bir dalı silmek dalı paylaşılan havuzdan (ör. GitHub, GitLab, Bitbucket) kaldırır ve iş arkadaşlarınız için erişilemez hale getirir. Ancak, diğer makinelerdeki yerel kopyalar manuel olarak kaldırılana veya güncellenene kadar kalmaya devam eder.

Neden bir dalı silmelisiniz?

Bir dalı silmek basitçe iyi bir temizliktir. Nasıl ki yinelenen fotoğrafları, eski indirmeleri ve demode klasörleri silmek iyi bir uygulamadır, bir dalı işiniz bittiğinde silmek için birkaç iyi neden vardır:

  • Havuzunuzu düzenli tutar. Çok fazla dal, özellikle de güncelliğini yitirmiş olanlar, aktif çalışmaları takip etmeyi zorlaştırır.
  • Kafa karışıklığını önler. Artık ilgili olmayan bir dalı tutmak, hâlâ kullanılıp kullanılmadığı konusunda belirsizlik yaratabilir.
  • İşbirliğini iyileştirir. Takım ortamlarında, tamamlanmış özellik dallarının silinmesi işin bittiğini gösterir ve demode kod üzerinde gereksiz çalışmayı önler.
  • Uzak havuz şişmesini azaltır. Uzak havuzlar, bayat dallarla dolup taşabilir; bu da sizin (veya bir izleyicinin) proje geçmişinde gezinmesini zorlaştırır.

Git’e yeni başladıysanız veya dalları yönetmeden önce kurulum yapmanız gerekiyorsa, adım adım talimatlar için Git kurulum eğitimine göz atın.

Yerel Bir Git Dalını Silmek

Yerel bir dalı silmek zor değildir; neyse ki daha basit Git görevlerinden biridir. Bunu yapmanın en güvenli yoluna ve dikkat edilmesi gerekenlere bakalım.

Yerel bir dalı silmek için temel komut

Yerel bir dalı silmenin en güvenli yolu -d bayrağını kullanmaktır:

git branch -d <branch_name>

Bu komutun yalnızca dal, geçerli dala (genellikle main veya master) tamamen birleştirilmişse çalışacağını unutmayın. Birleştirilmemiş değişiklikler varsa Git, olası veri kaybını önlemek için sizi durdurur.

Yerel bir dalı zorla silmek

Birleştirilmemiş değişiklikler içeren bir dalı silmeye çalışırsanız, Git buna izin vermez; ancak zorlayabilirsiniz:

git branch -D <branch_name>

-D bayrağı (büyük harfe dikkat edin) güvenlik kontrolünü atlar ve dalı, birleştirilmiş olsun olmasın, hemen siler. Bunu kullanırken dikkatli olmanızı şiddetle tavsiye ederim. Başka bir yedek veya aynı commit’lere işaret eden bir dal yoksa birleştirilmemiş çalışmalar kaybolur.

Silmeden önce birleştirilmemiş değişiklikleri kontrol etmek

Bir dalı silme noktasına gelmeden önce, birleştirilmemiş değişiklikleri olup olmadığını kontrol etmek iyi bir fikirdir. Bunu şu komutla yapabilirsiniz:

git branch --no-merged

Yukarıdaki komut, geçerli dala birleştirilmemiş tüm dalları listeler. Silmek üzere olduğunuz dal bu listede görünüyorsa, devam etmeden önce değişikliklerine gerçekten ihtiyacınız olmadığından emin olun.

Dal silmeyi de içeren Git komutları için hızlı bir başvuru ister misiniz? Pratik Git Cheat Sheet’i indirin.

Uzak Bir Git Dalını Silmek

Uzak bir dalı silmek, yerel bir dalı silmekten biraz farklıdır. Uzak dallar paylaşılan havuzlarda bulunduğundan, bunları kaldırmak işleri düzenli tutmaya ve demode dalların ekip iş akışlarını kalabalıklaştırmasını önlemeye yardımcı olur.

Uzak bir dalı silmek için temel komut

GitHub, GitLab veya Bitbucket gibi bir uzak havuzdan dal silmek için şunu kullanın:

git push origin --delete <branch_name>

Bu komut dal referansını uzak havuzdan kaldırır ve başkaları için erişilemez hale getirir. Ancak diğer makinelerdeki yerel dal kopyaları etkilenmez; ayrı olarak temizlenmeleri gerekir.

Uzak dal silme işlemini doğrulamak

Uzak bir dalı sildikten sonra, gerçekten gittiğini doğrulamanız gerekir. Önce uzak havuzdan en son güncellemeleri alın:

git fetch --prune

Bu, güncelliğini yitirmiş uzak izleme referanslarını kaldırır. Dalın artık listelenmediğini iki kez kontrol etmek için şunu çalıştırın:

git branch -r

Yukarıdaki komut kalan tüm uzak dalları görüntüler. Silinen dal hâlâ görünüyorsa, bir kez daha git fetch --prune çalıştırmayı deneyin veya silme komutunun doğru uzak havuzda yürütüldüğünden emin olun.

Git Dallarını Silmek İçin En İyi Uygulamalar

Dalları silmek Git ile çalışmanın rutin bir parçasıdır; ancak bunu doğru yapmak gereksiz sıkıntılardan kurtarır. Havuzunuzu düzenli tutmak ve olası hatalardan kaçınmak için bazı en iyi uygulamalar şunlardır.

Birleştirilmemiş dalları erken silmekten kaçının

Bir dalı silmeden önce, hâlâ ihtiyaç duyulan birleştirilmemiş çalışma içermediğinden emin olun. Emin değilseniz durumunu şu komutla kontrol edin:

git branch --no-merged

Dal henüz birleştirilmemiş değerli değişiklikler içeriyorsa, doğrudan silmek yerine önce birleştirmeyi veya arşivlemeyi düşünün.

Birleştirdikten sonra silin

Bir özellik veya düzeltme ana dala (main veya master) birleştirildikten sonra eski dalı tutmanın bir nedeni yoktur. Birleştirilmiş dalları silmek kalabalığı önler ve hangi dalların hâlâ aktif olduğunu görmeyi kolaylaştırır.

Takımınızla iletişim kurun

Profesyonel bir nezaket olarak, işbirliğine dayalı bir projede çalışırken, takımınıza haber vermeden bir dalı silmekten kaçının. Bu kafa karışıklığına yol açabilir—hatta daha kötüsü, bir başkasının işini sekteye uğratabilir. Uzak bir dalı kaldırmadan önce, kimsenin hâlâ kullanmadığından emin olmak için ekibinizle kontrol edin. Ben, hayal kırıklığını önlemek için basit bir Slack mesajını veya notu tercih ederim.

Bir dalı silmeden önce, commit geçmişinizi derleyerek temizlemek isteyebilirsiniz. Nasıl yapılacağını Git Squash Commits eğitiminde öğrenin.

Git Dalları Silinirken Yaygın Sorunlar

Git’te dalları silmek genellikle sorunsuzdur, ancak sizi zor durumda bırakabilecek bazı yaygın tuzaklar vardır. İşte nelere dikkat etmeniz gerektiği ve bu sorunlar ortaya çıkarsa nasıl ele alabileceğiniz.

Tam olarak birleştirilmemiş bir dalı silmek

Yine, git branch -d ile birleştirilmemiş değişiklikler içeren bir dalı silmeye çalışırsanız, Git olası veri kaybını önlemek için sizi durdurur. Bu bir emniyet önlemidir. -D ile zorla silerseniz birleştirilmemiş tüm çalışmalar kaybolur.

Bir dalı zaten sildiyseniz ve geri almanız gerektiğini fark ederseniz, Git’in reflog özelliğini kullanarak kurtarabilirsiniz:

git reflog
git checkout -b <branch_name> <commit_hash>

Bu, tamamen çöp toplamaya gitmemişse dalı son bilinen commit’inden geri yüklemenize olanak tanır.

Geçerli dalı silmek

Git, o anda bulunduğunuz dalı silmenize izin vermez; bu mantıklıdır, aksi takdirde aktif bir dalınız kalmazdı. Bir dalı silmeye çalışırken hata görürseniz önce başka bir dala geçin:

git checkout main

Veya Git 2.23+ kullanıyorsanız:

git switch main

Başka bir dala geçtiğinizde, kaldırmak istediğiniz dalı güvenle silebilirsiniz.

Bir dalı silmeden önce dallar arasında geçiş yapmanız mı gerekiyor? Git’te uzak bir dalı checkout etme rehberimiz süreci adım adım açıklar.

Yanlışlıkla uzak bir dalı silmek

Bir uzak dal yanlışlıkla silindiyse, (yerel kopyanız hâlâ varsa) onu tekrar uzağa iterek geri yükleyebilirsiniz:

git push origin <deleted_branch_name>

Bu, dalı uzak havuzda yeniden oluşturur ve iş arkadaşlarınızın erişimini geri getirir. Yerel kopya yoksa, commit geçmişinizi manuel olarak kontrol edip dalı yeniden oluşturmanız gerekebilir.

Neden Bir Git Dalını Silemiyorum?

Git’te bir dalı silmekte zorlanıyorsanız, yaygın sorunlara geri dönün; tamamen birleştirilip birleştirilmediğini, şu anda o dalda olup olmadığınızı veya dalın uzak dal olup olmadığını kontrol edin. Buradan sonra sorun ayarlarınız veya izinleriniz olabilir.  

  1. Kontrol edeceğiniz ilk şey, şu anda o dalda olup olmadığınız. Git, aktif olarak üzerinde çalıştığınız bir dalı silmenize izin vermez; önce başka bir dala geçmeniz gerekir. 
  2. Sorun bu değilse, dal hâlâ birleştirilmemiş değişikliklere sahip olabilir. Git, birleştirilmemiş çalışmalara sahip dalları korur; bu değişikliklere kesinlikle ihtiyacınız olmadığından emin değilseniz dalı git branch -D branch-name ile zorla silmeniz veya birleştirmeniz gerekir.
  3. Uzak bir dalı silmeye çalışıyorsanız, basit bir git branch -d işe yaramaz. Bunun yerine git push origin --delete branch-name çalıştırmanız gerekir ve eski referansları temizlemek için git fetch --prune kullanabilirsiniz. 
  4. Özellikle GitHub veya GitLab gibi platformlarda barındırılan bazı havuzlarda, ayarlar değiştirilmeden silinemeyen korumalı dallar bulunur. Paylaşılan bir havuzda çalışıyorsanız, dalları silmek için doğru izinlere de ihtiyacınız olabilir.

Hâlâ takıldıysanız, git branch -v komutunu çalıştırmak dalın durumu hakkında daha fazla ayrıntı verir ve tekrar denemeden önce neler olup bittiğini anlamanıza yardımcı olur.

Git ile Dal Temizliğini Otomatikleştirmek

İyi otomasyonu severim. Dalları elle silmek gayet işe yarar ve nasıl yapılacağını bilmelisiniz; ama başka bir yol daha var. Çok sayıda dal ile uğraşıyorsanız (örneğin bir ekip ortamında), otomasyon zaman kazandırır ve işleri daha derli toplu tutar. Git, ekstra çaba olmadan kalabalığı azaltmak için dal temizliğini kolaylaştırmanın birkaç yolunu sunar.

Uzak dal temizliğini otomatikleştirin

Bir uzak dal silindiğinde, yerel Git’iniz siz elle güncelleme yapana kadar ona dair bir referansı tutar. Tek tek temizlemek yerine şunu kullanabilirsiniz:

git fetch --prune

Yukarıdaki komut, uzak havuzda artık var olmayan dallara ilişkin yerel referansları otomatik olarak kaldırır ve her şeyi senkron tutar. Bunu düzenli çalıştırmak, bayat dalların yerel havuzunuzda birikmesini önler.

Temizlik için Git kancalarını kullanın

Ekipler veya daha büyük projeler için Git kancaları dal temizliğini otomatikleştirmeye yardımcı olabilir. Kancalar, Git iş akışının belirli noktalarında (örneğin bir dal birleştirildikten sonra) çalışan özel betiklerdir. Birleştirilmiş dalları belirli bir sürenin ardından otomatik olarak silmek için post-merge kancasını yapılandırabilir, böylece eski dalların gereksiz yere oyalanmasını önleyebilirsiniz.

Sonuç

Dallar zamanla dağınık hale gelebilir; ancak biraz “budama” havuzunuzu temiz ve iş akışınızı verimli tutmaya yardımcı olur. Birleştirilmiş dalları silmeyi alışkanlık haline getirerek, birleştirilmemiş olanları iki kez kontrol ederek ve ekip projelerinde iletişimi açık tutarak bu sorunlardan kaçınabilirsiniz. Bir adım daha ileri gitmek isterseniz, git fetch --prune ve Git kancaları gibi otomasyon araçları, ekstra çaba harcamadan havuzunuzu temiz tutmanıza yardımcı olur.

Dalları silmek, Git’te ustalaşmanın sadece bir adımıdır. Sürüm kontrolüne ilişkin bilginizi derinleştirmek için Intermediate Git kursuna göz atın. GitHub havuzlarıyla çalışıyorsanız, GitHub’ın temel kavramlarını sağlam biçimde kavramak şarttır. Daha fazlasını Introduction to GitHub Concepts kursunda öğrenin!

SSS

Git’te bir dalı silmek üretim kodumu etkiler mi?

Hayır, bir dalı silmek, dal zaten ana dalınıza (main veya master) birleştirilmişse üretim kodunu etkilemez. Ancak, birleştirilmemiş değişiklikler içeren bir dalı silerseniz, başka bir dala alınmamış tüm çalışmalar kaybolur. Silmeden önce her zaman birleştirme durumunu kontrol edin.

Ekibimin önemli dalları yanlışlıkla silmesini nasıl önlerim?

Paylaşılan bir havuzda (GitHub, GitLab, vb.) çalışıyorsanız, main ve develop gibi kritik dalları dal koruma kuralları belirleyerek koruyabilirsiniz. Bu, yanlışlıkla silmeleri ve yetkisiz zorla itmeleri (force push) önlemeye yardımcı olur. Yerel havuzlar için, aktif dalları belirtmek üzere adlandırma kuralları kullanmayı düşünebilirsiniz (ör. devam eden çalışmalar için wip- öneki), böylece hangilerinin henüz kaldırılmaması gerektiği anlaşılır.

Uzak bir Git dalını kimin sildiğini takip etmenin bir yolu var mı?

Evet, GitHub, GitLab veya Bitbucket üzerinde barındırılan havuzlarda dal silmeleri genellikle etkinlik akışında kaydedilir. Bir dalın kim tarafından ve ne zaman silindiğini görmek için havuzunuzun denetim kayıtlarını veya commit geçmişini kontrol edebilirsiniz. Kendi sunucunuzda barındırılan Git havuzları için, silmeleri izlemek üzere sunucu tarafı kancaları manuel olarak kurmanız gerekebilir.

Terminalimi kapattıysam silinen bir Git dalını nasıl kurtarırım?

Bir dalı sildiyseniz ve terminalinizi kapatmadıysanız, şununla geri alabilirsiniz:

git checkout -b <branch_name> <commit_hash>

Ancak terminali zaten kapattıysanız, en iyi seçenek git reflog kullanmaktır.

Bu, dal silmeleri de dahil olmak üzere son işlemlerin bir geçmişini gösterir. Silinen daldaki son commit karmasını (hash) bulun ve dalı yeniden oluşturmak için bunu kullanın. Ancak dal hem uzaktan hem yerelden silindiyse ve başka kimsede kopyası yoksa kurtarma mümkün olmayabilir.

Gerçek kullanımda `git branch -d` ile `git branch -D` arasındaki fark nedir?

  • git branch -d <branch> — Güvenli silme. Dal birleştirilmemiş değişiklikler içeriyorsa silmeyi engeller ve güvenlik ağı görevi görür.
  • git branch -D <branch> — Zorla silme. Dal birleştirilmemiş değişiklikler içerse de umurunda değildir — dalı hemen kaldırır.

Gerçek dünyada, çoğu zaman yanlışlıkla iş kaybını önlemek için -d kullanırsınız. -D ise yalnızca dalın içeriğine artık %100 ihtiyaç duymadığınızdan eminseniz kullanılmalıdır.


Ashlyn Brooks's photo
Author
Ashlyn Brooks

Ashlyn Brooks, bulut platformları (Azure, AWS), API dokümantasyonu ve veri altyapısı konularında uzmanlaşmış bir Teknik Yazardır. Yedi yılı aşkın deneyimiyle, karmaşık kavramları geliştirici deneyimini ve ürün benimsenmesini artıran, anlaşılır ve kullanıcı dostu içeriğe dönüştürmede uzmandır.

Konular

Bu kurslarla Git hakkında daha fazlasını öğrenin!

Kurs

Git'e Giriş

2 sa
71.6K
Yazılım ve veri projelerinizde sürüm kontrolü için Git'in temellerini keşfedin.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow