38 Soru: Git şubesini yerel olarak ve uzaktan nasıl silerim?

tarafından oluşturulan soru Sat, Jun 15, 2019 12:00 AM

Bir şubeyi hem yerel hem de uzaktan silmek istiyorum.

Uzak Şubeyi Silme Girişimi Başarısız Oldu

 
$ git branch -d remotes/origin/bugfix
error: branch 'remotes/origin/bugfix' not found.

$ git branch -d origin/bugfix
error: branch 'origin/bugfix' not found.

$ git branch -rd origin/bugfix
Deleted remote branch origin/bugfix (was 2a14ef7).

$ git push
Everything up-to-date

$ git pull
From github.com:gituser/gitproject
* [new branch] bugfix -> origin/bugfix
Already up-to-date.

başarıyla silmek için ne yapmalıyım?  Hem yerel hem de uzaktan remotes/origin/bugfix şube mi istiyorsunuz?

    
15386
  1. Moderatör notu: Bu soruyu cevaplamak istiyorsanız, zaten 40 yanıt olduğunu unutmayın. Yeni cevabınız önemli bir değer katacak mı?
    2014-06-11 16: 10: 42Z
  2. Not: Git 2.5+ (2. Çeyrek 2015) için tam ileti " deleted remote-tracking branch " olacaktır: bkz.
    2015-05-25 14: 57: 35Z
  3. Yüce lord, sadece OP'nin bu soru için ne kadar puan harcadığını bilmek istiyorum?
    2019-06-13 19: 19: 53Z
  4. 30 Yanıtlar                              30                         

    Yönetici Özeti

     
    $ git push --delete <remote_name> <branch_name>
    $ git branch -d <branch_name>
    

    Çoğu durumda uzak adın origin olduğunu unutmayın.

    Yerel Şubeyi Sil

    Yerel dalını silmek için aşağıdakilerden birini kullanın:

     
    $ git branch -d branch_name
    $ git branch -D branch_name
    

    Not: -d seçeneği, --delete için bir takma addır; dalı, yalnızca daha önce akış yukarı dalında tam olarak birleştirilmişse siler. "Birleştirilmiş durumundan bağımsız olarak" dalını silen -D'un takma adı olan --delete --force'u da kullanabilirsiniz. [Kaynak: man git-branch]

    Uzak Dal Sil [[Eylül-2017-Tarihinde Güncelleme]

    Git v1.7.0 itibariyle ,

    işaretini kullanarak bir remote şubesini silebilirsiniz.  
    $ git push <remote_name> --delete <branch_name>
    

    hatırlanması daha kolay olabilir

     
    $ git push <remote_name> :<branch_name>
    

    Git v1.5.0 'da eklendi. a> "uzak bir dalı veya etiketi silmek için."

    Git v2.8.0 'dan başlamak git push'u -d seçeneğiyle --delete takma adı olarak da kullanabilirsiniz.

    Bu nedenle, yüklediğiniz Git sürümü daha kolay mı yoksa zor sözdizimini mi kullanmanız gerektiğini belirler.

    Uzak Şubeyi Sil [5-Ocak-2010 tarihli Orijinal Cevap]

    Pro Git Scott Chacon tarafından:

      

    Uzak Dalları Silme

         

    Uzak bir şubeyle işiniz bittiğini varsayalım - siz ve ortak çalışanlarınız bir özellik ile işiniz bitti ve onu uzaktan kumandanızın ana şubesine (veya sabit kod satırınızın hangi şubesinde bulunuyorsa) birleştirdiniz. Uzak bir dalı, oldukça geniş sözdizimi git push [remotename] :[branch]'u kullanarak silebilirsiniz. Sunucu düzeltme şubenizi sunucudan silmek istiyorsanız, aşağıdakileri çalıştırın:

     
    $ git push origin :serverfix
    To git@github.com:schacon/simplegit.git
     - [deleted]         serverfix
    
         

    Bom. Sunucunuzda artık şube yok. Bu sayfayı köpek kulağı ile almak isteyebilirsiniz, çünkü o komuta ihtiyacınız olacak ve sözdizimini unutabilirsiniz. Bu komutu hatırlamanın bir yolu, biraz önce daha önce denediğimiz git push [remotename] [localbranch]:[remotebranch] sözdizimini hatırlamaktır. [localbranch] bölümünü terk ederseniz, temelde “Benim tarafımda hiçbir şey almayın ve [remotebranch] olmasını sağlayın” diyorsunuz.

    git push origin :bugfix'u yayımladım ve çok iyi çalıştı. Scott Chacon haklıydı; o sayfayı köpek kulağı yapmak isteyeceğim (ya da neredeyse Bunu Stack Overflow'ta yanıtlama).

    O zaman bunu diğer makinelerde de uygulamalısınız

     
    git fetch --all --prune
    

    değişiklikleri yaymak için.

        
    19267
    2018-12-13 04: 45: 54Z
    1. git push origin local_branch:remote_branch sözdizimini biliyorsanız, git push origin :remote_branch olan bir dalı silmek için sözdizimisevimli biri. :'dan önce bir boşluk var
      2012-05-11 04: 05: 03Z
    2. Sunucudaki uzak dalı sildikten sonra diğer makinelerde git fetch --all --prune yapmayı unutmayın. ||| git branch -d ile yerel şubeyi silip git push origin --delete ile uzak şubeyi sildikten sonra, diğer makinelerde hala "eski izleme dalları" olabilir (bunları git branch -a'u görmek için). Bunlardan kurtulmak için git fetch --all --prune yapın.
      2015-05-27 16: 51: 36Z
    3. @ TrevorBoydSmith'in git branch -a'unun yanı sıra tüm dalları görüntülemek için git branch -r'u yalnızca uzak dalları görüntülemek için de kullanabilirsiniz. ayrıca bkz: git remote show origin - kaynak: gitready.com/intermediate/2009/13/02 /list-uzak-branches.html
      2015-09-09 09: 53: 18Z
    4. Yerel şubeden kurtulmak için git branch -D Branch_Name'u çalıştırmak zorunda kaldım
      2016-03-10 01: 32: 06Z
    5. @ KolobCanyon Şube başka bir şubeyle birleştirilmemişse, yalnızca -D kullanmanız gerekir.
      2016-04-05 16: 27: 15Z

    Matthew’ün cevabı, uzak dalları kaldırmak için mükemmeldir ve ayrıca açıklamaları takdir ediyorum, ancak iki komut arasında basit bir ayrım yapmak için:

    Makinenizden bir yerel şube çıkarmak için:

    git branch -d {the_local_branch} (birleştirilmiş durumu kontrol etmeden şubeyi silmeyi zorlamak yerine -D kullanın)

    Sunucudan bir uzak şubeyi kaldırmak için:

    git push origin --delete {the_remote_branch}

    Referans: https://makandracards.com/Makandra /621-git-silme-a-dal-yerel-ya-uzak

        
    3040
    2017-12-18 12: 33: 13Z
    1. @ megido kuyusu -D kuvveti siler, -d zaten birleştirilmemişse size bir uyarı verir.
      2014-11-06 19: 04: 59Z
    2. Yerel şubeniz ana sistemle bir araya gelmediyse ve 'git branch -d your_branch çalıştırdıysa, error: The branch 'your_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D your_branch'. gibi hata yaparsınız
      2015-10-31 12: 59: 14Z
    3. Daha güvenli olduğu için -D yerine -d kullanmanızı öneririm. Eğer -d unmerled taahhütleri nedeniyle başarısız olursa o zaman bunu değerlendirmek gerekir ve kaldırmak için kesinlikle Tamam ise o zaman -D kullanın.
      2016-02-02 03: 47: 57Z
    4. Uzak dalların kaldırıldığı depo klonlarına sahip olan diğerleri, uzaklarda artık bulunmayan eski dalları yerel olarak kaldırmak için git remote prune <name> (örn. git remote prune origin) çalıştırmalıdır.
      2016-04-18 23: 07: 39Z
    5. Geçerli HEAD ile birleştirilmezse, -d uyarısını vermek istiyorum. Netliğe ihtiyacınız varsa bu komutu öneririm git branch -a --merged origin/master Yerel ve uzaktaki tüm dalları listeler; bu usta ile birleştirilmiştir. Ek bilgiler burada
      2017-02-10 13: 10: 57Z

    Kısa Cevaplar

    Aşağıdaki komutların daha ayrıntılı açıklamalarını istiyorsanız, sonraki bölümdeki uzun cevaplara bakın.

    Uzak bir şubeyi silmek:

     
    git push origin --delete <branch>  # Git version 1.7.0 or newer
    git push origin :<branch>          # Git versions older than 1.7.0
    

    Yerel bir şubeyi silmek:

     
    git branch --delete <branch>
    git branch -d <branch> # Shorter version
    git branch -D <branch> # Force delete un-merged branches
    

    Yerel bir uzaktan izleme şubesini silme:

     
    git branch --delete --remotes <remote>/<branch>
    git branch -dr <remote>/<branch> # Shorter
    
    git fetch <remote> --prune # Delete multiple obsolete tracking branches
    git fetch <remote> -p      # Shorter
    

    Uzun Cevap: Silinecek 3 farklı dal var!

    Deali olduğundaŞubeleri hem yerel olarak hem de uzaktan silerken, dahil olan 3 farklı dal olduğunu unutmayın:

    1. Yerel şube X.
    2. Uzak kaynak şubesi X.
    3. Uzak şubeyi origin/X izleyen yerel uzaktan izleme şubesi X.

    3 dalın görselleştirilmesi

    Kullanılan orijinal poster

     
    git branch -rd origin/bugfix
    

    yalnızca yerel uzaktan izleme şubesini silen origin/bugfix, bugfix'daki gerçek origin numaralı uzak şubeyi değil.

    Diyagram 2

    O gerçek uzak şubeyi silmek için ihtiyacınız var

     
    git push origin --delete bugfix
    

    Diyagram 3

    Ek Detaylar

    Aşağıdaki bölümlerde, uzaktan ve uzaktan izleme şubelerinizi silerken göz önünde bulundurmanız gereken ek detaylar açıklanmaktadır.

    Uzaktaki dalları silmeye basmak, uzaktaki izleme alanlarını da siler

    X nolu uzak dalı git push kullanarak komut satırından silmenin yerel uzaktan izleme dalını da sileceğini de unutmayın origin/X, bu nedenle eski uzaktan izleme dalını git fetch --prune ile eritmek gerekmez. veya git fetch -p, yine de yaparsanız canınız yanmaz.

    Aşağıdakileri çalıştırarak origin/X numaralı uzaktan izleme şubesinin de silindiğini doğrulayabilirsiniz:

     
    # View just remote-tracking branches
    git branch --remotes
    git branch -r
    
    # View both strictly local as well as remote-tracking branches
    git branch --all
    git branch -a
    

    Eski yerel uzaktan takip şube menşeini /X'i budamak

    Uzaktaki şubenizi X komut satırından (yukarıdaki gibi) silmediyseniz, yerel reponuz (şimdi kullanılmayan) uzaktan izleme şubesini origin/X içerecektir. Bu, örneğin uzak bir şubeyi doğrudan GitHub’ın web arayüzü üzerinden sildiyseniz olabilir.

    Bu eski uzaktan izleme dallarını kaldırmanın tipik bir yolu (Git sürüm 1.6.6'dan beri) git fetch'u --prune veya daha kısa -p ile çalıştırmaktır. Bunun, uzaktan kumandada artık bulunmayan tüm uzak dallar için kullanılmayan tüm yerel uzaktan izleme dallarını kaldırdığını unutmayın :

     
    git fetch origin --prune
    git fetch origin -p # Shorter
    

    İşte 1.6.6 sürüm notları (vurgu madeni):

      

    "git getir" öğrenildi , getirme işlemini çalıştırmak için --all ve --multiple seçenekleri   birçok depo ve uzaktan izlemeyi kaldırmak için --prune seçeneği   Bayatlayan şubeler. Bunlar "git uzaktan güncelleme" ve "git   uzak erik "daha az gerekli (kaldırılacak plan yok")   güncelleme olsa da "ne de" uzak erik ".)>

    Eski uzaktan izleme dalları için yukarıdaki otomatik budama alternatifi

    Alternatif olarak, eski yerel uzaktan izleme şubelerinizi git fetch -p üzerinden budamak yerine , --remote veya -r bayraklarıyla dalları manuel olarak kaldırarak fazladan ağ işlemi yapmaktan kaçınabilirsiniz :  

    git branch --delete --remotes origin/X
    git branch -dr origin/X # Shorter
    

    Ayrıca Bkz.

    1760
    2016-03-10 12: 20: 26Z
    1. Çiziminizden, yerel klon repoları ve uzak kaynaklı repolar olduğunu görebiliyorum. Bu yüzden en az iki fiziksel dal var. Silinecek üçüncü şube nerede? Üçüncü şube sadece yerel klon deposundaki bir taahhüdü işaret eden bir işaretçi midir?
      2016-02-18 02: 00: 40Z
    2. @ huggie bu oldukça doğru. Git'teki şubeler sadece taahhütlere eklenmiş yer imleridir. Bu yüzden yukarıdaki grafiklerimde, yerel klonda (2 şube) X ve origin/X yer imleri var ve ardından uzaktan kumandada X (3 şube yapıyor) var.
      2016-02-23 07: 33: 42Z
    3. Uzaktan izleme dalı için
      + 1. Bu şube, başka birinin şubesini klonladığınızda sorunlara neden olan şeydir. Taahhütlerinizi takip etmeye ve o kişinin şubesine gitmek isteyip istemediğinizi sormaya devam ediyor.
      2017-06-21 19: 48: 20Z

    Bir dalı silme adımları:

    Uzak şubeyi silmek için:

     
    git push origin --delete <your_branch> 
    

    Yerel şubeyi silmek için üç ​​yolunuz var:

     
    1: git branch -D <branch_name> 
    
    2: git branch --delete --force <branch_name>  //same as -D
    
    3: git branch --delete  <branch_name>         //error on unmerge
    

    Açıkla: Tamam, burada neler olup bittiğini açıklayın!

    SADECE uzaktaki şubenizi silmek için git push origin --delete yapın, en sonunda şubenin adını ekleyin; bu işlem aynı anda silinecek ve aynı zamanda uzaktan kumandaya gönderilecektir ...

    Ayrıca, yalnızca SADECE yerel şubeyi silen git branch -D, ! ...

    -D, birleştirilmiş olmasa bile şubeyi silecek olan --delete --force anlamına gelir (zorla silme), ancak -d'u, şube birleştirme durumuna ilişkin bir hataya neden olan --delete anlamına gelir.

    Adımları göstermek için aşağıdaki resmi de oluşturuyorum:

     Git'teki uzak ve yerel şubeyi sil

        
    1321
    2019-03-22 07: 08: 35Z
    1. git branch -a yerel ve uzak dalları gösterecek. Bu, tanıtmanız için size yardımcı olacaktır.
      2017-07-27 03: 01: 39Z
    2. , silmek istediğiniz dalda ayar yapıyorsanız, silmeden önce silmeniz gerekenden başka bir dalda ödeme yapmanız gerektiğini unutmayın (örneğin: master) yerel şube.
      2018-05-28 08: 43: 55Z
    3. Dallar başlangıçta silindiğinde, yerel havuzunuz bunu fark etmeyecektir. Hala bu dalların yerel önbelleğe alınmış sürümlerine sahip olacaksınız (ki bu gerçekten iyi) ama git dal-a hala uzak dallar olarak listeleyecek. Bu bilgileri yerel olarak bu şekilde temizleyebilirsiniz: git remote prune origin Silinen dalların yerel kopyalarınız bununla kaldırılmaz. Aynı etki git fetch --prune kullanarak da elde edilir
      2019-05-08 06: 33: 45Z

    Uzak şubeyi silmek için aşağıdakileri de kullanabilirsiniz

     
    git push --delete origin serverfix
    

    Hangisi aynıdır?

     
    git push origin :serverfix
    

    ancak hatırlanması daha kolay olabilir.

        
    753
    2018-12-13 04: 44: 17Z
    1. ... ve kullanımı daha güvenli: O
      2017-11-29 07: 31: 21Z
    2. Yerel şubeyi silme ile ilgili kısmı unuttum: git branch -d <local_branch> veya git branch -D <local_branch> zorla silme
      2018-02-14 04: 23: 55Z

    İpucu: Şubeleri kullanarak sildiğinizde

     
    git branch -d <branchname> # deletes local branch
    

    veya

     
    git push origin :<branchname> # deletes remote branch
    

    yalnızca referanslar silinir. Şube uzaktan kumandadan kaldırılsa bile, referanslar hala ekip üyelerinin yerel depolarında bulunmaktadır. Bu, diğer ekip üyeleri için silinmiş dalların git branch -a yaptıklarında görünmeye devam ettiği anlamına gelir.

    Bunu çözmek için ekip üyeleriniz silinen şubeleri budayabilirler

     
    git remote prune <repository>
    

    Bu genellikle git remote prune origin'dur.

        
    360
    2018-12-13 04: 44: 30Z
    1. Yukarıdaki git push işleminin yerel dalı ve uzak dalı sildiğini açıklığa kavuşturmalısınız.
      2013-05-21 13: 51: 46Z
    2. git remote prune'un eski uzaktan izleme dallarını kaldırmanın biraz eski bir yol olduğunu unutmayın; bunun en yeni yolu git fetch --prune veya git fetch -p'u kullanmaktır.
      2014-06-11 16: 30: 04Z
    3. @ RRMadhav, silinen şubeyi sildikten sonra görmezsiniz, çünkü uzak şubeye yapılan referans sizin için yerel olarak kaldırılır. Ekibinizdeki o şubeyi kontrol eden başka biri hala bu referansa sahip olacak ve şubeyi budamadıkları sürece görmeye devam edecektir.
      2014-12-05 14: 27: 38Z

    Bir dalı silmek istiyorsanız, önce silinecek daldan başka bir şubeye ödeme yapın.

     
    git checkout other_than_branch_to_be_deleted
    

    Yerel şubeyi silme:

     
    git branch -D branch_to_be_deleted
    

    Uzak şubeyi silme:

     
    git push origin --delete branch_to_be_deleted
    
        
    359
    2015-06-09 02: 04: 02Z
     
    git branch -D <name-of-branch>
    git branch -D -r origin/<name-of-branch>
    git push origin :<name-of-branch>
    
        
    259
    2014-08-08 20: 04: 03Z
    1. -D silme işlemini zorlar . -d'u kullanmak her zaman daha iyidir, bu tehlikeli bir şey yapmanız gerekip gerekmediğini hatırlatır.
      2015-01-10 01: 08: 57Z
    2. ahahah :) sana kalmış: Git ağladığını görmek istiyorsanız -d'yi veya ağlamak istiyorsanız -D'yi kullanın.
      2015-02-13 11: 21: 07Z

    Bu basittir: Aşağıdaki komutu çalıştırmanız yeterlidir:

    Git şubesini hem yerel hem de uzaktan silmek için önce yerel şubeyi aşağıdaki komutu kullanarak silin:

     
    git branch -d example
    

    (burada example, şube adıdır)

    Ve bundan sonra uzak dalı komutunu kullanarak sil:

     
    git push origin :example
    
        
    221
    2015-06-09 02: 03: 14Z

    Başka bir yaklaşım: -

     
    git push --prune origin
    

    UYARI : Bu, yerel olarak bulunmayan tüm uzak dalları siler. Veya daha kapsamlı bir şekilde,

     
    git push --mirror
    

    etkin bir şekilde uzak havuzun, deponun yerel kopyası gibi görünmesini sağlar (yerel başlıklar, uzaktan kumandalar ve etiketler uzaktan kumandada yansıtılır).

        
    192
    2018-12-13 04: 44: 03Z
    1. git push --prune kökeni gitlab'da benim için hiçbir şey yapmadı: git clone git: //repo.git; git dalı -d -r kökeni /bazı dalları; git push - başlangıç ​​kaynağı; verim: Her şey güncel; git getir; yerel olarak silinen dalları geri getirir; git push --mirror; şimdi onlar gerçekten gitti!
      2015-10-08 16: 46: 25Z

    Aşağıdakileri Bash ayarlarımda kullanıyorum:

     
    alias git-shoot="git push origin --delete"
    

    O zaman arayabilirsiniz:

     
    git-shoot branchname
    
        
    163
    2018-12-13 04: 43: 53Z
    1. Sona erdi, sadece "shoot" diğer adını .gitconfig shoot = itme kökeni --delete
      dizinine ekledim
      2014-12-04 18: 06: 37Z
    2. Eğer menşeiniz bir Atlassian Stash ise ve dal varsayılan olarak ayarlandıysa, bir hata alırsınız "Varsayılan olarak, geçerli dalın silinmesi engellendi ..." . Silmeden önce Stash'daki varsayılan şubeyi başka bir şubeye işaret edecek şekilde değiştirmek zorunda kaldım.
      2014-12-12 00: 29: 35Z
    3. Bu, sizin yaptığınız gibi gayet basit, ancak fyi git ayrıca özel komutlar vermenize de izin veriyor. git push origin --delete $1'u yolunuzdaki git-shoot adlı bir dosyaya koyun ve git shoot branchname da işe yarayacak.
      2015-10-14 07: 09: 31Z

    Ocak 2013’ten bu yana GitHub, "Şubeler" sayfanızdaki her şubenin yanına bir Şube Sil düğmesi ekledi.

    İlgili blog yazısı: Şube oluşturma ve silme

        
    128
    2018-12-13 04: 42: 21Z
    1. Ben sadece bu yıl Github kullanmaya başladım, bu yüzden bunun neden bu kadar yüksek puan alan bir soru olduğunu ve neden en iyi cevapların hiçbirinin onu sadece silmek istediğini merak ediyordum. Github web arayüzü! İlginç olması sadece yeni bir ekleme.
      2013-09-11 12: 18: 54Z
    2. Bunu işaret edecektim. Düğmenin yerel şubenizi silmeyeceğini unutmayın ... bunun nasıl yapılacağını görmek için bu cevaba bakın: stackoverflow.com/a/10999165 /901641
      2013-10-29 14: 02: 45Z

    Yerel olarak sil:

    Yerel bir şubeyi silmek için kullanabilirsiniz:

     
    git branch -d <branch_name> 
    

    Bir dalı zorla silmek için, -D yerine -d kullanın.

     
    git branch -D <branch_name>
    

    Uzaktan sil:

    İki seçenek var:

     
    git push origin :branchname  
    
    git push origin --delete branchname 
    

    2. yolu daha sezgisel olduğu için kullanmanızı öneririm.

        
    123
    2018-12-13 04: 45: 05Z

    Her iki adımı da tek bir komutla tamamlamak istiyorsanız, ~/.gitconfig’a aşağıdakini ekleyerek takma ad oluşturabilirsiniz:

     
    [alias]
        rmbranch = "!f(){ git branch -d ${1} && git push origin --delete ${1}; };f"
    

    Alternatif olarak, bunu genel yapılandırmanıza komut satırından

    kullanarak ekleyebilirsiniz  
    git config --global alias.rmbranch \
    '!f(){ git branch -d ${1} && git push origin --delete ${1}; };f'
    

    NOT : -d (küçük harf d) kullanıyorsanız, dal yalnızca birleştirilmişse silinir. Silme işlemini zorlamak için -D (büyük harf D) kullanmanız gerekir.

        
    121
    2014-06-11 16: 26: 17Z
    1. Aradığım şey buydu. Kendi kabuk fonksiyon takma ismim (Beklenmeyen EOF) işe yaramadı ve nedenini anlayamadım, ama bu harika çalışıyor! Yaptığım tek değişiklik, &&'u ; ile değiştirmekti, böylece ilk komut başarısız olsa da ikinci çalıştırmaya devam edecek (bazen sadece yerel ya da sadece uzaktan kumanda var).
      2014-12-16 08: 55: 29Z

    Şubenizi yerel ve uzaktan silmek için

    • Ana şubeye ödeme - git checkout master

    • Uzak şubenizi silin - git push origin --delete <branch-name>

    • Yerel şubenizi silin - git branch --delete <branch-name>

    113
    2017-12-13 22: 10: 51Z

    Bunu git remote prune origin kullanarak da yapabilirsiniz

     
    $ git remote prune origin
    Pruning origin
    URL: git@example.com/yourrepo.git
     * [pruned] origin/some-branchs
    

    Uzaktan izleme şubelerini git branch -r listeden eritir ve siler.

        
    108
    2018-12-13 04: 43: 19Z

    Diğer yanıtlara ek olarak, genellikle git_remote_branch aracını kullanırım. Ekstra bir kurulumdur, ancak uzak dallarla etkileşime geçmenin kolay bir yolunu sunar. Bu durumda silmek için:

     
    grb delete branch
    

    publish ve track komutlarını da oldukça sık kullandığımı buluyorum

        
    104
    2018-12-13 04: 41: 10Z

    Bir liner komutu hem hem yerel hem de uzak silme :

    D=branch-name; git branch -D $D; git push origin :$D

    veya aşağıdaki diğer adı ~ /.gitconfig 'e ekleyin; kullanım: git kill branch-name

     
    [alias]
        kill = "!f(){ git branch -D \"$1\";  git push origin --delete \"$1\"; };f"
    
        
    93
    2017-01-15 08: 30: 43Z
    1. ⚠️ Bir betiği git branch -D kullanarak, birleştirilmeden önce bir dalı zorla siler. Güvende olmak için -d kullanın.
      2017-03-13 14: 05: 07Z

    Şube Silme

      

    Şube konusundaki çalışmamızın "temas formu" yapıldığını ve onu zaten "usta" ile birleştirdiğimizi varsayalım. Artık ihtiyacımız olmadığından, silebiliriz (yerel olarak):

     
    $ git branch -d contact-form
    

    Uzak şubeyi silmek için:

     
    git push origin --delete contact-form
    
        
    91
    2015-11-18 19: 51: 13Z

    Uzak şubeyi sil

    git push origin :<branchname>

    Yerel şubeyi sil

    git branch -D <branchname>

    Yerel şube adımlarını silin:

    1. başka bir şubeye ödeme yapma
    2. yerel şubeyi sil
    86
    2016-02-19 18: 05: 46Z
    1. Uzak dal silme işlemi daha sonra "git push" gerektiriyor mu?
      2016-02-17 08: 32: 54Z
    2. @ SamithaChathuranga no, git push origin :<branchname> zaten bir 'boş' dalı uzaktan kumandaya itti (bu nedenle uzak dalı siler)
      2017-06-09 22: 20: 55Z

    Basitçe söyleyin:

     
    git branch -d <branch-name>
    git push origin :<branch-name>
    
        
    85
    2016-06-25 12: 52: 01Z
    1. Kendi şubeniz varsa çalışır. Ancak, depodaki tüm gereksiz dalları budanıyorsanız (bazıları sizin değil) yetmez.
      2016-06-30 22: 23: 07Z
     
    git push origin --delete <branch Name>
    

    hatırlamak daha kolaydır

     
    git push origin :branchName
    
        
    80
    2018-12-13 04: 44: 45Z

    Artık bunu GitHub Desktop uygulamasıyla yapabilirsiniz.

    Uygulamayı başlattıktan sonra

    1. Şubeyi içeren projeye tıklayın
    2. Silmek istediğiniz şubeye geçin şube değiştirme
    3. Şubenin GitHub sunucularından silinmesini sağlamak için "Şube" menüsünden "Yayından kaldır ..." ı seçin. şubeyi kaldır
    4. Şubenin yerel makinenizden silinmesini sağlamak için "Şube" menüsünden "Sil" şube_adı "... 'ı seçin (şu anda üzerinde çalıştığınız makine) yerel şubeyi sil
    79
    2016-12-16 03: 58: 50Z
    1. Oy vermedi, ancak benim düşüncem bunun kesinlikle yardımcı olmadığını söylüyor. Soru açıkça, harici bir program kullanmak zorunda kalmadan daha fazla komut satırı tipi bir cevap istiyor, eğer insanlar buraya tıklarlarsa, büyük olasılıkla masaüstü yöntemleri için bir github aramayacaklardır.
      2015-11-06 11: 51: 15Z
    2. @ Daemedeor, katılmıyorum. OP'nin soruyu sorduğu 2010 yılında, UI'nin yapma şekli yoktu ve tek seçenek komut satırıydı. Yalnızca bir komut satırı istediğinizi belirtmek için, soruda veya komut satırı- etiketiyle belirtilmelidir. Bu durumda mevcut olmayan bir arayüz vardır.
      2015-11-06 16: 00: 39Z
    3. Uzak bir dalı silmek için git komutu berbat ve bunu unutma eğilimindeyim (hem yeni hem de eski). Neyse ki seçeneğe sahip GUI araçları var. Git Gui, TortoiseGit ve GitHub Desktop'da var - Keşke Eklentiler de bu işlevselliğe sahip olsaydı. Neyse, hatırladığım şey Git Gui'yi uzak bir dalı silmem gerektiğinde Git Uzantıları'nın içinden başlatmak.
      2016-03-25 21: 59: 21Z

      Yerel olarak silmek için - (Normal),

       
      git branch -d my_branch
      

      Şubeniz yeniden birleştirme /birleştirme işleminde ilerliyorsa ve bu doğru şekilde yapılmadıysa, Rebase/Merge in progress hatası alırsınız, bu durumda şubenizi silemezsiniz.

      Öyleyse ya yeniden birleştirme /birleştirme çözme gereksiniminiz varsa, aksi takdirde Sil'i kullanarak zorlayabilirsiniz.

       
      git branch -D my_branch
      

      Uzakta silmek için:

       
      git push --delete origin my_branch
      

      , aynısını kullanarak da yapabilir

       
      git push origin :my_branch   # easy to remember both will do the same.
      

      Grafiksel Gösterimi,

       buraya resim açıklamasını girin

          
      73
      2017-11-19 10: 24: 03Z

      Bu, kumandadaki dalıyla aynı ada sahip bir etiketiniz varsa işe yaramaz:

       
      $ git push origin :branch-or-tag-name
      error: dst refspec branch-or-tag-name matches more than one.
      error: failed to push some refs to 'git@github.com:SomeName/some-repo.git'
      

      Bu durumda, etiketi silmek istediğinizi belirtmeniz gerekir, etiketi değil:

       
      git push origin :refs/heads/branch-or-tag-name
      

      Benzer şekilde, kullanacağınız şube yerine etiketi silmek için:

       
      git push origin :refs/tags/branch-or-tag-name
      
          
      65
      2018-12-13 04: 43: 05Z
      1. Bu sorun değil, ancak insanlar gerçekten dallarını ve etiketlerini aynı adda ve aynı adlandırma düzeninde ilk adlandırmada kullanmamalı.
        2014-07-29 10: 00: 02Z
      2. Benim senaryom, bir şubeyi bir etikete dönüştürmekti ve etiketin şubeyle aynı adı taşıması anlamlıydı. B ile A dalını birleştirmeyi ve B dalındaki son işlemi B etiketiyle etiketlemeyi kastediyorum, böylece B dalını sildikten sonra B etiketini kontrol ederek kolayca geri yüklenebilir.
        2014-07-30 11: 59: 10Z

      Diğer cevapların çoğu hatalara /uyarılara neden olacaktır. Bu yaklaşım, göreceli olarak aptaldır ancak git branch -D branch_to_delete ile tam olarak birleştirilmemişse some_other_branch'a ihtiyacınız olabilir.

       
      git checkout some_other_branch
      git push origin :branch_to_delete
      git branch -d branch_to_delete
      

      Uzak dalı sildiyseniz uzaktan budama gerekmez. Yalnızca, izlemekte olduğunuz bir depoda en güncel uzaktan kumandaları almak için kullanılır. git fetch'un uzaktan ekleyeceğini, kaldırmayacağını gördüm. İşte git remote prune origin'un gerçekte ne zaman bir şeyler yapacağına bir örnek:

      Kullanıcı A, yukarıdaki adımları uygular. B kullanıcısı, en güncel uzak şubeleri görmek için aşağıdaki komutları kullanır.

       
      git fetch
      git remote prune origin
      git branch -r
      
          
      51
      2018-12-13 04: 41: 37Z

      Bu cevabın googlinginden bıktım, bu yüzden benzer bir yaklaşım izledim crizCraig'in daha önce yayınladığı yanıtı içine.

      Bash profilime aşağıdakiler eklendi:

       
      function gitdelete(){
          git push origin --delete $1
          git branch -D $1
      }
      

      Sonra her şubeyle işim bittiğinde (örneğin master ile birleştirildi) terminalimde aşağıdakileri çalıştırıyorum:

       
      gitdelete my-branch-name
      

      ... sonra my-branch-name’u origin’dan ve aynı zamanda yerel olarak siler.

          
      49
      2017-05-23 12: 34: 58Z
      1. bu konuda genişleyen, --delete "$@" yerine -D "$@" ve $1, birden fazla dal için işleyecektir.
        2016-06-27 13: 15: 19Z
      2. Değişikliklerin birleştirildiğinden emin olmak için önce git branch -d (küçük harf 'd' ile) çalıştırmanızı ve ardından başarılı olursa (komutlar arasına && koymanızı sağlar)
        2016-07-19 14: 17: 45Z

      Yürütmeden önce

       
      git branch --delete <branch>
      

      ilk önce uzak dalın EXACT adının ne olduğunu çalıştığınızdan emin olun:

       
      git ls-remote
      

      Bu, <branch> değeri için tam olarak ne girmeniz gerektiğini söyleyecektir. (branch büyük /küçük harf duyarlıdır!)

          
      45
      2016-06-25 12: 56: 09Z
       
      git push origin :bugfix  # Deletes remote branch
      git branch -d bugfix     # Must delete local branch manually
      

      Silmek istediğinize eminseniz, çalıştırın

       
      git branch -D bugfix
      

      Artık silinen uzak şubeleri temizlemek için

       
      git remote prune origin
      
          
      44
      2016-04-21 16: 49: 36Z

      Diğer tüm cevapların birleştirilmesi. Ruby 1.9.3+ gerektirir, OS X’de yalnızca test edildi.

      Bu dosyayı git-remove arayın, çalıştırılabilir hale getirin ve yolunuza koyun. Ardından, örneğin git remove temp kullanın.

       
      #!/usr/bin/env ruby
      require 'io/console'
      
      if __FILE__ == $0
            branch_name = ARGV[0] if (ARGV[0])
            print "Press Y to force delete local and remote branch #{branch_name}..."
          response = STDIN.getch
          if ['Y', 'y', 'yes'].include?(response)
            puts "\nContinuing."
            `git branch -D #{branch_name}`
            `git branch -D -r origin/#{branch_name}`
            `git push origin --delete #{branch_name}` 
          else
            puts "\nQuitting."
          end
      end
      
          
      43
      2018-12-13 04: 42: 35Z
      1. bir harf bu cevabın iznini alır: stackoverflow.com/a/8072675/8047
        2013-11-19 21: 04: 12Z
      2. @ chhh sonra bunu bir varsayım yerine değişken yapmak için bu işlevselliği genişletmeniz gerekir.
        2014-12-05 16: 44: 44Z
      3. Üzgünüz, ancak Ruby bu tür bir iş için mi yüklendi? Daha mantıklı olanı bash üzerinde kullanıma hazır olacak uygulamadır.
        2015-05-21 19: 37: 04Z
      4. @ Reishin Ruby, en az OSX'de, Bash gibi kutuya yüklenir. Lütfen bakınız: stackoverflow.com/questions/2342894/… yerine ruby ​​ne zaman ve ne zaman kabuk kullanmalı?
        2015-05-21 20: 03: 07Z
      5. @ Yar bu bağlantı bağlam dışında ve daha geniş bir kapsamı var. Sadece git hakkında söylüyorum ve konu yalnızca OSX için kaynaklanmadığı için, bu seçim diğer sistemler için garip (örneğin, * UNIX, Windows)
        2015-05-21 20: 33: 30Z
kaynak yerleştirildi İşte