Git ile yerel bir şubeyi silme


135

Google'da araştırdım ve bu konuda çok uzun birkaç konu var ve hiçbiri yardımcı olmuyor. Sanırım yanlış bir şey yapıyorum. Adında bir şubem var Test_Branch. Önerilen yöntemi kullanarak silmeye çalıştığımda şu hatayı alıyorum:

'[Dizin konumu]' nda teslim alınan 'Test_Branch' dalı silinemiyor.

Bunun dışında başka bilgi alamıyorum. Uzaktaki şubeyi kolayca uçurabilirim ama yerel şube kaybolmaz.


BTW, Git'te tamamen yeniyim. Sadece son birkaç gündür kullanıyorum. Birkaç çevrimiçi kurs aldınız ve birkaç kitap okudunuz ve cevaplar da orada görünmüyor.
Bob Wakefield

Eğer infaz edersen git branch, ne diyor?
36'da coredump


git şube bana veriyor * Test_Branch master
Bob Wakefield

Yıldız size şu anda hangi şubede olduğunuzu söyler, bu yanıtların ne dediğini onaylar
17:48 de öz döküm

Yanıtlar:


246

Test_BranchAşağıdaki gibi başka bir şubeye geçin ve silin :

$ git checkout master
$ git branch -d Test_Branch

Yukarıdaki komut size hata veriyorsa The branch 'Test_Branch' is not fully merged. If you are sure you want to delete itve yine de onu silmek istiyorsanız, bunun yerine şunu kullanarak silmeye zorlayabilirsiniz-D-d :

$ git branch -D Test_Branch

Test_BranchUzaktan kumandadan da silmek için , şunu yürütün:

git push origin --delete Test_Branch

35
Dalları değiştirmek bana kazandıran şeydi - iyi yakaladım! Şubede aktifseniz silemezsiniz. ;-)
SliverNinja - MSFT

2
Birkaç farklı kontrol denediğiniz halde aynı mesajı alıyorsanız git status, veya git branch; Test_branch'ı yeniden finanse ediyorsanız, farklı bir dalı / commit'i kontrol etmek bunu düzeltmeyecektir. Bunun yerine git rebase --aborto zaman git checkout --detachve sonundagit branch -D Test_branch
droid

3
Git'in "git korkunç" anlamına geldiğine dair daha fazla kanıt . Onu ne kadar çok kullanırsam, bu saçma çemberlerden o kadar çok atlamanız gerekir. Özellikle de muhtemelen aynı şubeye geri dönmek istediğiniz için.
user949300

Ya biri dalları değiştirmeye çalışırken karşılığında bunu alırsa? error: you need to resolve your current index firstve sadece AYRILMAK istiyorlar? DÜZENLE - Çözüm git reset --:; git checkout -D [branch_name]Phew ..
Paul

21

Muhtemelen Test_Branch'ı kontrol ettirmişsinizdir ve mevcut şubeniz olduğu sürece onu silemezsiniz. Farklı bir şubeye göz atın ve ardından Test_Branch'ı silmeyi deneyin.


14

Bugün bununla karşılaştım ve başka bir şubeye geçmek işe yaramadı. Çalışma ağacı bilgilerimin bir şekilde bozulmuş olduğu ve HEADdalda ( git worktree list) bir işaret bulunan çalışma dizinimle aynı klasör yoluna sahip bir çalışma ağacı olduğu ortaya çıktı . .git/worktree/Referans veren klasörü sildim ve git branch -dçalıştım.


3

Git worktree ile birden fazla çalışma ağacı oluşturduysanız git prune, dalı silmeden önce çalıştırmanız gerekir.


3
daha spesifik olarak, kullanmanız gerekecekgit worktree prune
Sergioet

ama önce git
prune'un

1

Bu benim için çalıştı ...
.git / worktrees klasöründeki klasörleri kaldırdım ve sonra "git delete -D şube-adı" nı denedim.


1

Benim durumumda, önceki şubeden gelen taahhüt edilmeyen değişiklikler vardı. Aşağıdaki komutları kullandım ve sonra çalıştı sildim.

git checkout *

git ödeme yöneticisi

git şube-D


0

Diğerleri gibi, çalışmakta olduğunuz şubeyi silemezsiniz.

Benim durumumda, Visual Studio'da "Test_Branch" ı seçtim ve Sourcetree'den (Git GUI) "Test_Branch" silmeye çalışıyordum. Ve hata mesajının altına düşüyordu.

'[Dizin konumu]' nda teslim alınan 'Test_Branch' dalı silinemiyor.

Visual Studio'da farklı bir dala geçildi ve Sourcetree'den "Test_Branch" silebildi.

Umarım bu, Visual Studio ve Sourcetree kullanan birine yardımcı olur .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.