Git: Yerel bir dal silme
Son güncelleme
Bir dalın işi birleştirildikten sonra, onu git branch -d <branch> ile silersiniz. Dalda hiçbir yere birleştirilmemiş commit'ler varsa Git bunu reddeder - bu bir güvenlik kontrolüdür. Yine de silmek için büyük -D harfini kullanın. Yerel bir dalı silmek uzaktaki kopyaya asla dokunmaz; o ayrı bir komuttur.
Bunları terminal playground'da deneyin - tarayıcınızda gerçek bir kabuk, kurulacak hiçbir şey yok.
Söz dizimi
| Command | What it does |
|---|---|
git branch -d feature | feature dalını sil (yalnızca birleştirilmişse) |
git branch -D feature | Birleştirilmemiş olsa bile feature dalını zorla sil |
git branch -d branch1 branch2 | Birden fazla dalı aynı anda sil |
Yaygın durumlar
| Goal | Command |
|---|---|
| Birleştirilmiş bir dalı sil | git branch -d old-feature |
| Birleştirilmemiş bir dalı zorla sil | git branch -D scratch |
| Üzerinde bulunduğunuz dalı sil | git switch main ardından git branch -d feature |
| Hangi dalların birleştirildiğini gör | git branch --merged |
Uygulamalı örnek
Bir özelliği bitirin, birleştirin ve yerel dalı temizleyin.
| Step | Command | Result |
|---|---|---|
| 1 | git switch main | Silmek istediğiniz daldan çıkın |
| 2 | git merge feature | Özelliğin commit'lerini main dalına getirin |
| 3 | git branch -d feature | Artık birleştirilmiş olan dalı silin |
Git yerel dal silme SSS
git branch -d ile -D arasındaki fark nedir?
-d güvenli silmedir: Git dalı yalnızca commit'leri başka bir dala zaten birleştirilmişse kaldırır, böylece yanlışlıkla iş kaybetmezsiniz. -D zorla silmedir (--delete --force kısaltması): birleştirilmemiş commit'leri olsa bile dalı ne olursa olsun kaldırır. Varsayılan olarak -d kullanın ve yalnızca dalın commit'lerini gerçekten atmak istediğinizden eminseniz -D seçeneğine başvurun.Şu anda üzerinde bulunduğum dalı nasıl silerim?
Checkout ile açtığınız dalı silemezsiniz. Önce
git switch main (veya git checkout main) ile başka bir dala geçin, ardından git branch -d feature çalıştırın. Mevcut dalı silmeyi denerseniz, Git "Cannot delete branch ... checked out" hatası verir.Yerel bir dalı silmek GitHub'da da siler mi?
Hayır.
git branch -d dalı yalnızca yerel deponuzdan kaldırır. Uzaktaki daldaki (GitHub, GitLab vb.) kopya, onu git push origin --delete feature ile ayrıca silene kadar kalır.Sildiğim bir dalı geri kurtarabilir miyim?
Genellikle evet, yakın zamandaysa. Dalın işaret ettiği commit'i bulmak için
git reflog çalıştırın, ardından onu git branch feature <commit-hash> ile yeniden oluşturun. Commit'ler hemen çöp toplanmaz, bu yüzden yanlışlıkla silinen bir dal normalde geri getirilebilir.Bunu çevrimiçi olarak deneyebilir miyim?
Evet. Bu komutları tarayıcınızda gerçek bir kabukta çalıştırmak için terminal playground'u açın - kurulacak hiçbir şey yok. Yapı istediğinizde, Coddy'nin ücretsiz etkileşimli Git kursu sizi ilk commit'inizden dallanma ve birleştirmeye adım adım götürür.