Git şubesi hem yerel hem de uzaktan nasıl kaldırılır?

Bir şubeyi hem yerel olarak hem de GitHub'taki uzak proje eklentimde silmek istiyorum.

Silinen şube silinemedi

 $ 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. 

Hem yerel olarak hem de remotes/origin/bugfix başarıyla kaldırmak için ne yapmam gerekiyor?

14380
05 янв. Matthew Rankin 05 Ocak'ta ayarlandı 2010-01-05 04:12 '10, 04:12 2010-01-05 04:12
@ 40 cevap
  • 1
  • 2

Yönetici özeti

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

Çoğu durumda silinen adın origin olduğuna dikkat edin.

Yerel şubeyi sil

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

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

Not. -d parametresi --delete için bir takma addır, bu yalnızca bir dalı --delete yalnızca ana dalla tamamen birleştirilmişse olur. Şubeyi "birleştirilmiş durumundan bağımsız olarak" silen --delete --force takma adı olan --delete --force de kullanabilirsiniz. [Kaynak: man git-branch ]

Silinen konuyu sil [8 Eylül 2017 güncellendi]

Git v1.7.0 ile başlayarak, silinmiş bir şubeyi kullanarak silebilirsiniz.

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

hatırlamak daha kolay ne olabilir

 $ git push <remote_name> :<branch_name> 

Git v1.5.0'da "silinmiş bir dalı veya etiketi kaldırmak için" eklendi.

Git v2.8.0 ile başlayarak, -d ile git push --delete için diğer ad olarak kullanabilirsiniz.

Bu nedenle, yüklediğiniz Git sürümü daha basit veya daha karmaşık bir sözdizimi kullanmanız gerekip gerekmediğini belirler.

Silinen bir dalı silme [5 Ocak 2010 tarihli orijinal cevap]

Scott Chacon'un Pro Git Bölüm 3'ünden:

Silinen dalları silme

Uzaktaki bir şubeyle sona erdiğinizi varsayalım - örneğin, siz ve ortak çalışanlarınız bir işleve sahip oldunuz ve bunu uzaktan kumandanın ana şubesiyle (veya sabit kod satırınızı içeren diğer herhangi bir şubeyle) birleştirdiniz. git push [remotename] :[branch] oldukça açık sözdizimini kullanarak uzaktaki bir dalı silebilirsiniz. Sunucu düzeltme ekini sunucudan kaldırmak istiyorsanız, aşağıdakileri yapın:

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

Bom. Sunucunuzda daha fazla dal yok. Bu sayfaya bakmak isteyebilirsiniz çünkü bu komuta ihtiyacınız var ve büyük olasılıkla sözdizimini unutacaksınız. Bu komutu ezberlemek için git push [remotename] [localbranch]:[remotebranch] sözdizimi git push [remotename] [localbranch]:[remotebranch] biraz önce inceledik. Eğer [localbranch] ın [localbranch] [localbranch] , temel olarak şöyle derler: " [localbranch] hiçbir şey alma ve [remotebranch] ".

git push origin :bugfix serbest bıraktım git push origin :bugfix ve iyi çalıştı. Scott Chacon haklıydı - Bu sayfayı dinlemek istemiştim (ya da aslında Stack Overflow'ta cevap veren bir köpeğin kulağı).

O zaman diğer makinelerde yapmalısın.

 git fetch --all --prune 

değişiklikleri yay.

17997
05 янв. Cevap Matthew Rankin 05 Ocak tarafından verildi 2010-01-05 04:13 '10, 04:13 2010-01-05 04:13

Matthew'ın cevabı silinen dalları silmek için harika ve ayrıca açıklama için minnettarım, ancak iki komut arasındaki basit fark için:

Yerel bir şubeyi kaldırmak için Cihazınızdan:

git branch -d {the_local_branch} (birleştirilmiş durumu denetlemeden bir dalı zorla kaldırmak yerine -D kullanın)

border=0

Uzak bir şube sunucusunu sunucudan kaldırmak için:

git push origin --delete {the_remote_branch}

Bağlantı: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

2944
12 июня '12 в 17:51 2012-06-12 17:51 Cevap Eric Brotto tarafından 12 Haziran 12'de 17:51 2012-06-12 17:51 tarihinde verilmiştir.

Kısa cevaplar

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

Uzak 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 silmek:

1697
30 мая '14 в 21:32 2014-05-30 21:32 Cevap kullanıcı456814 30 May 14 'de 21:32 2014-05-30 21:32 tarafından verilir.

Bir dalı kaldırma adımları:

Uzak bir şubeyi silmek için :

 git push origin --delete <your_branch> 

Yerel bir şubeyi silmek için üç seçeneğiniz vardır :

 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: iyi, sadece burada neler olduğunu açıkla!

SADECE silinen dalı silmek için git push origin --delete kullanın, sonuna dalın adını ekleyin, ve silinecek ve uzaktaki şubeye gönderecektir.

Ayrıca, git branch -D , SADECE yerel şubeyi siler! ...

-D birleştiğinde bile (bir zorla silme) bir dalı silen - zorla - zorlama anlamına gelir, ancak aynı zamanda --delete --force de kullanabilirsiniz - bu da - birleştirme - dalı birleştirme durumuna karşılık gelen --delete hatayı --delete anlamına gelir ...

Ayrıca adımları göstermek için aşağıdan bir resim oluşturuyorum:

2019

27 июня '17 в 16:13 2017-06-27 16:13 Cevap Alireza tarafından 27 Haziran 17'de 4:13 2017-05-06-27 16:13 tarihinde verilmiştir.

Silinen bir dalı kaldırmak için aşağıdakileri de kullanabilirsiniz.

 git push --delete origin serverfix 

Aynı şeyi yapan

 git push origin :serverfix 

ama hatırlaması daha kolay olabilir.

719
28 окт. cevap verdi pagetribe 28 Ekim. 2011-10-28 01:22 '11, 1:22 2011-10-28 01:22

Bir şubeyi silmek istiyorsanız, önce silmek istediğiniz şubeden başka bir şubeye çıkın.

 git checkout other_than_branch_to_be_deleted 

Yerel bir şubeyi silmek:

 git branch -D branch_to_be_deleted 

Uzak bir şubeyi silmek:

 git push origin --delete branch_to_be_deleted 
350
07 окт. Cevap Praveen Hiremath tarafından verildi Eki 07 2014-10-07 16:52 '14, saat 16:52 2014-10-07 16:52

İpucu: ile dalları silerken

 git push origin :<branchname> # deletes remote branch 

Sadece bağlantılar silinir. Şube gerçekten silinmesine rağmen, ekip üyelerinizin yerel depolarında hala bağlantılar var. Bu, diğer ekip üyeleri için uzak dalların hala bir git branch -a yaptıklarında görünür hale geldiği anlamına gelir.

Bu sorunu çözmek için ekibinizin üyeleri silinmiş dalları kullanarak silebilir.

 git remote prune <repository> 

Bu genellikle git remote prune origin .

338
07 нояб. Cevap pfrenssen 07 Kas. 2012-11-07 16:02 '12, 4:02, 2012-11-07 16:02
 git branch -D <name-of-branch> git branch -D -r origin/<name-of-branch> git push origin :<name-of-branch> 
250
24 окт. Cevabı 24 Ekim. 2013-10-24 20:36 '13, 20:36, 2013-10-24 20:36

Çok basit: sadece aşağıdaki komutu çalıştırın:

Git şubesini hem yerel hem de uzaktan kaldırmak için, önce şu komutu kullanarak yerel şubeyi kaldırın:

 git branch -d example 

(burada example dalın adıdır)

Bundan sonra, silinen dalı aşağıdaki komutu kullanarak silin:

 git push origin :example 
215
15 февр. yanıtladı Syeful Islam 15 Şub 2015-02-15 18:20 '15 18:20 2015-02-15 18:20

Başka bir yaklaşım:

 git push --prune origin 

DİKKAT: Bu, yerel olarak mevcut olmayan tüm uzak dalları siler. Veya daha kapsamlı

 git push --mirror 

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

181
18 нояб. Tarafından verilen cevap imanuelcostigan 18 Kas. 2012-11-18 09:11 '12 9:11 2012-11-18 09:11

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

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

Sonra arayabilirsin:

 git-shoot branchname 
152
03 апр. Cevap crizCraig 03 Nisan. 2013-04-03 01:11 '13, 1:11 2013-04-03 01:11

Ocak 2013'ten bu yana GitHub, "Şubeler" sayfasındaki her bir şubenin yanına Şube Sil düğmesini dahil etti.

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

120
29 апр. Cevap Nacho Coloma tarafından 29 Nisanda verildi 2013-04-29 13:39 '13 13:39 2013-04-29 13:39

Bu işlemlerin her ikisini de tek bir komutla gerçekleştirmek istiyorsanız, ~/.gitconfig aşağıdakine ekleyerek takma ad verebilirsiniz:

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

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

112
15 янв. 15 Ocak tarihinde Ryan Kohn tarafından verilen cevap 2013-01-15 22:05 '13, 10:05 pm 2013-01-15 22:05

Bir şubeyi yerel olarak ve uzaktan silmek için

  • Şubeden bir satın alma yapın - git checkout master

  • Uzak dalı sil - git push origin --delete <branch-name>

  • Yerel dalı sil - git branch --delete <branch-name>

106
04 янв. Cevap mfathy00 tarafından verildi 04 Ocak 2016-01-04 00:08 '16, 0:08 2016-01-04 00:08

Yerel olarak sil:

Yerel bir şubeyi silmek için şunları kullanabilirsiniz:

 git branch -d <branch_name> 

Bir dalı silmeye zorlamak 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. yöntemi kullanmanızı öneririm, çünkü daha sezgiseldir.

103
23 мая '15 в 11:56 2015-05-23 11:56 Cevap Rahul Gupta tarafından 23 Mayıs '15 saat 11: 56'da verilmiştir 2015-05-23 11:56

Bunu ayrıca git remote prune origin kullanarak da yapabilirsiniz.

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

Uzaktaki izleme dallarını git branch -r listesinden kaldırır ve siler.

97
12 марта '13 в 17:57 2013-03-12 17:57 Cevap 12 Mart'ta 13: 17'de 17:57 2013-03-12 17:57

Diğer cevaplara ek olarak, genellikle git_remote_branch aracını kullanırım. Bu isteğe bağlı bir yüklemedir, ancak uzak dallarla etkileşime geçmenin kolay bir yolunu sunar. Bu durumda, sil:

 grb delete branch 

Ayrıca publish ve track komutlarını da sıklıkla kullandığımı görüyorum.

95
24 марта '12 в 5:21 2012-03-24 05:21 Cevap 26 26 Mart 2426'da verilmektedir 5:21 2012-03-24 05:21

Dalları silme

"İletişim formu" branşındaki çalışmalarımızın tamamlandığı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 

Ve uzak bir şubeyi silmek için:

 git push origin --delete contact-form 
86
30 окт. Cevap Ulysses Alves'e 30 ekim. 2015-10-30 15:39 '15 15:39 2015-10-30 15:39

Bir liner komutu hem yerel hem de uzaktakileri kaldırır:

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

veya aşağıya ~ / .gitconfig biçiminde bir diğer ad ekleyin; kullanım: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. Cevap Vinnie James Kasım 17 tarafından verildi . 2016-11-17 04:03 '16 4:03. 2016-11-17 04:03

Uzak bir dalı sil

git push origin :<branchname>

Yerel şubeyi sil

git branch -D <branchname>

Yerel geçiş adımlarını silin:

  • başka bir şubeye bak
  • yerel şubeyi sil
82
31 дек. Cevap jayxhj 31 Ara verilir. 2015-12-31 12:22 '16, 12:22, 2015-12-31 12:22

Sadece söyle:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. piyushmandovra tarafından Nis 23 tarihinde verilen cevap 2015-04-23 21:06 '15 21:06 2015-04-23 21:06

Şimdi bunu GitHub Desktop uygulaması ile yapabilirsiniz .

Uygulamaya başladıktan sonra

  • Şubeyi içeren projeyi tıklayın
  • Silmek istediğiniz şubeye gidin. 2019
22 окт. Cevap 22 Ekim'de Eric tarafından verildi . 2015-10-22 10:38 '15, 10:38 2015-10-22 10:38

Yerel olarak silmek için - (Normal),

 git branch -d my_branch 

Rebase/Merge in progress / birleşme sürecinde ise ve doğru şekilde yapılmadıysa, bir Rebase/Merge in progress hata mesajı alırsınız, bu durumda şubenizi silemezsiniz.

Böylece, taşma / birleştirme işlemine izin verme gereksiniminiz varsa, aksi takdirde

 git branch -d my_branch 

Uzakta silmek için:

 git push --delete origin my_branch 

aynı şeyi kullanabilir

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

Grafik sunum

2019

23 июня '17 в 9:42 2017-06-23 09:42 Cevap Mohideen ibn Mohammed tarafından 23 Haziran ' 17'de 9:42 2017-06-23 09:42 tarihinde verilmiştir.
 git push origin --delete <branch Name> 

hatırlamak daha kolay

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 Cevap Smila 02 Mayıs '15 13: 59'da verilmiştir 2015-05-02 13:59

Uzaktan kumanda şubesiyle aynı adı taşıyan bir etiketiniz varsa bu 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 değil, dalı silmek istediğinizi belirtmeniz gerekir:

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

Benzer şekilde, dal yerine bir etiketi kaldırmak için şunları kullanmanız gerekir:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 Cevap 29 Temmuz'da Amiramix'e verilir, 14:02 2014-07-29 12:02

Bu cevabın arkasına bakmakta rahatsız oldum, bu yüzden crizCraig'in daha önce yayınladığı cevaba benzer bir yaklaşım yaptım .

Bash profilime aşağıdakiler eklendi:

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

Sonra bunu her zaman bir dalla yaptığımda (örneğin, bir master birleştirme), terminalimde aşağıdakileri çalıştırıyorum:

 gitdelete my-branch-name 

... sonra da şubemdeki my-branch-name yerel olarak yerelden kaldırır.

48
10 февр. Cevap 10 Şubat arthurakay verildi. 2016-02-10 22:47 '16, 10:47, 2016-02-10 22:47

Diğer birçok cevap, hatalara / uyarılara yol açacaktır. Bu yaklaşım git branch -D branch_to_delete ancak yine de git branch -D branch_to_delete .

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

Silinen bir dalı silerseniz silme gerekli değildir. Yalnızca takip ettiğiniz depoda bulunan en gelişmiş uzaktan kumandaları elde etmek için kullanıldı. git fetch konsolları ekleyeceğini, kaldırmayacaklarını farkettim. git remote prune origin gerçekten bir şey yaptığında bir örnek:

Kullanıcı A yukarıda açıklanan adımları gerçekleştirir. B kullanıcısı, en son uzaktaki şubeleri görmek için aşağıdaki komutları çalıştıracaktır.

 git fetch git remote prune origin git branch -r 
47
27 нояб. Cevap Brandon Cook Nov 27 tarafından verildi . 2013-11-27 06:04 '13, 06:04 2013-11-27 06:04

Gerçekleştirmeden önce

 git branch --delete <branch> 

çalıştırırken, uzaktaki dalın adı olan EXACT'in ne olduğunu tanımladığınızdan emin olun:

 git ls-remote 

Bu, <branch> değeri için tam olarak ne girmeniz gerektiğini söyleyecektir. ( branch duyarlı!)

44
21 мая '16 в 0:42 2016-05-21 00:42 joey tarafından 21 Mayıs '16' da verilen cevap 0: 42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Kaldırmak istediğinizden eminseniz,

 git branch -D bugfix 

Şimdi uzaktaki uzak dalların silinmesi devam ediyor.

 git remote prune origin 
43
21 апр. cevap Vivek 21 nisan verilir . 2016-04-21 19:49 '16, 07:49, 2016-04-21 19:49

Diğer bütün cevapları karıştır. Sadece OS X'te test edilen Ruby 1.9.3+ gerektirir.

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

41
20 нояб. Cevap Dan Rosenstark 20 Kasım'da verilir . 2013-11-20 00:02 '13, 0:02 2013-11-20 00:02
  • 1
  • 2

etiketleri ile ilgili diğer sorular veya Soru Sor