Git şöbəsini yerli və uzaqdan necə çıxarmaq olar?

Mən yerli bir şöbəni və GitHub'daki uzaq proyektli fişimdə silmək istəyirəm.

Silinmiş filialı silinə bilmədi

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

Yerli olaraq və GitHub-da müvəqqəti remotes/origin/bugfix aradan qaldırmaq üçün fərqli nə etmək lazımdır?

14380
05 янв. Matthew Rankin 05 yanvar tarixində təyin etdi 2010-01-05 04:12 '10 'da 4:12' də 2010-01-05 04:12 'də
@ 40 cavab
  • 1
  • 2

İcra xülasəsi

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

Çox hallarda silinmiş adın origin olduğunu unutmayın.

Yerli şöbəni silin

Yerli bir filialı silmək üçün aşağıdakılardan birini istifadə edin:

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

Qeyd -d parametri - bir filialı yalnız ana filialla tam birləşdirildikdə --delete silmək üçün bir taxma adıdır. Siz həmçinin, "birləşdirilmiş statusundan asılı olmayaraq" filialı silmək üçün " --delete --force üçün bir alias olan -d istifadə edə bilərsiniz. [Mənbə: man git-branch ]

Silinmiş mövzu silin [8 Sentyabr 2017 yeniləndi]

Git v1.7.0 ilə başlayaraq silinmiş bir filialı silə bilərsiniz

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

daha xatırlamaq daha asan ola bilər

 $ git push <remote_name> :<branch_name> 

Git v1.5.0-də "silinmiş bir filial və ya etiketin silinməsi" üçün əlavə olunmuşdur.

Git v2.8.0 ilə başlayaraq, -delete üçün alias kimi -d ilə də iti istifadə edə bilərsiniz.

Beləliklə, quraşdırdığınız Git versiyası, daha sadə və ya daha kompleks sintaksis istifadə etmək istəməyinizi müəyyən edəcək.

Silinmiş filialı silmək [Orijinal hesabat 5 yanvar 2010-cu il tarixli]

Scott Chacon tərəfindən Pro Git'in 3-cü fəslindən:

Silinmiş filialların silinməsi

Uzun məsafəli bir şöbə ilə bitirdiniz deyirsiniz - deyirsiniz, siz və sizin əməkdaşlarınız bir funksiya ilə başa çatdılar və onu uzaqdanın əsas şöbəsi ilə (və ya sabit kod kodunuzu ehtiva edən hər hansı digər şöbəyə) birləşdirdiniz. Uzaq bir git push [remotename] :[branch] silmək kifayət qədər sintaksisindən istifadə edilə bilər git push [remotename] :[branch] . Server yamacını serverdən çıxarmaq istəyirsinizsə, aşağıdakıları edin:

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

Boom Serverinizdə daha çox şöbə yoxdur. Bu səhifəni görmək istərdiniz, çünki bu əmr lazımdır və sözsüzlüyünü unutursunuz. Bu əmri yadda saxlamaq üçün git push [remotename] [localbranch]:[remotebranch] sözdiziminin git push [remotename] [localbranch]:[remotebranch] bir az əvvəl nəzərdən git push [remotename] [localbranch]:[remotebranch] . Əgər siz [localbranch] hissəsinizsə, əsasən deyirsiniz: "Mənim tərəfimə heç bir şey etməyin və onu [remotebranch] ".

git push origin :bugfix çıxardı git push origin :bugfix və yaxşı işləmişdir. Scott Chacon haqlı idi - mən bu səhifəni dinləmək istəyirəm (və ya, əslində, bir köpək qulaqını, Stack Overflow-da cavab ver).

Sonra digər maşınlarda bunu etmək məcburiyyətindəsiniz.

 git fetch --all --prune 

dəyişiklikləri təbliğ etmək.

17997
05 янв. Cavab Matthew Rankin tərəfindən verilir. 05 Yanvar 2010-01-05 04:13 '10 at 4:13 2010-01-05 04:13

Mattanın cavabı silinən şöbələri silmək üçün böyükdür və mən də izahat üçün minnətdaram, amma iki əmr arasında sadə bir fərq üçün:

Yerli şöbəni çıxarmaq Cihazınızdan:

git branch -d {the_local_branch} (birləşdirilmiş vəziyyətə nəzarət etmədən bir şöbəni zorla çıxarmaq yerine -D istifadə edin)

border=0

Uzaq bir şöbə serverini bir serverdan silmək üçün:

git push origin --delete {the_remote_branch}

Link: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

2944
12 июня '12 в 17:51 2012-06-12 17:51 Cavab Eric Brotto tərəfindən 12 İyun 2012 günü saat 17: 00-da verilir. 2012-06-12 17:51

Qısa cavablar

Aşağıdakı əmrlərin daha ətraflı izahatlarını istəyirsinizsə, növbəti bölmənin uzun cavablarına baxın.

Uzaq bir filialın silinməsi:

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

Yerli bir uzaqdan izləmə filialının silinməsi:

1697
30 мая '14 в 21:32 2014-05-30 21:32 Cavab istifadəçi456814 tərəfindən verilir May 30 '14 da 21:32 2014-05-30 21:32

Bir filialı aradan qaldırmaq üçün addımlar:

uzaq bir filialı silmək üçün :

 git push origin --delete <your_branch> 

Yerli şöbəni silmək üçün üç variant 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 

Deyək: yaxşı, burada nə baş verdiyini izah edin!

Yalnız git push origin --delete yerinə git push origin --delete - silinən filialı silmək üçün silin , filialın adını sonda əlavə edin və həm silmək, həm də uzaq filiala göndərin ...

Həmçinin, git branch -D , sadəcə yerli filialı silmək! ...

-D vasitələri deməkdir - --delete --force filialı silmək üçün --delete --force , birləşməsə belə (məcburi silinmə) olsa da, bu da demək --delete ki, istifadə edə bilərsiniz --delete - filialın birləşməsinə uyğun olan --delete səhvi --delete .

Həm də addımları göstərmək üçün aşağıdakı bir şəkil yaradın:

2019

Bir filialı silmək istəyirsinizsə, silmək istədiyiniz filialdan başqa bir filiala ilk çıxın.

 git checkout other_than_branch_to_be_deleted 

Yerli şöbənin silinməsi:

 git branch -D branch_to_be_deleted 

Uzaq bir filialın silinməsi:

 git push origin --delete branch_to_be_deleted 
350
07 окт. Cavab Praveen Hiremath Oct 07 tərəfindən verilir 2014-10-07 16:52 '14 'da 16:52 2014-10-07 16:52

İpucu: filialları silməklə

 git push origin :<branchname> # deletes remote branch 

Yalnız əlaqələr silinir. Şöbə həqiqətən silinməsinə baxmayaraq, onunla əlaqələr hələ də komanda üzvlərinin yerli depolarında mövcuddur. Bu, digər komanda üzvləri üçün, git branch -a zaman uzaq filialları hələ də görünə bilər.

Bu problemi həll etmək üçün komanda üzvləri silinən şöbələri istifadə edə bilərlər

 git remote prune <repository> 

Bu, adətən, git remote prune origin .

338
07 нояб. Cavab pfrenssen 07 noyabr tarixində verilir. 2012-11-07 16:02 '12 at 4:02 pm 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 окт. Felipe 24 oktyabrına cavab verdi . 2013-10-24 20:36 '13 saat 20:36 'da 2013-10-24 20:36

Çox sadədir: yalnız aşağıdakı əmrləri yerinə yetirin:

Git şöbəsini həm yerli, həm də uzaqdan çıxarmaq üçün əvvəlcə komanda ilə yerli şöbəni çıxarın:

 git branch -d example 

(burada example şöbənin adıdır)

Bundan sonra, əmrdən istifadə edərək silinən filialı silin:

 git push origin :example 
215
15 февр. 15 fevralda Syeful Islam cavab verdi 2015-02-15 18:20 '15 saat 18:20 'də 2015-02-15 18:20

Digər yanaşma:

 git push --prune origin 

DİQQƏT: Bu, yerli olmayan bütün köklü filialları silməyəcəkdir. Və ya daha əhatəli,

 git push --mirror 

effektiv olaraq depoyun yerli bir nüsxəsi kimi uzaq havuza baxmaq (yerli başlıqlar, uzaqdan və etiketlər uzaqda əks olunur).

181
18 нояб. İmanuelcostigan tərəfindən verilmiş cavab 18 Noyabr. 2012-11-18 09:11 '12 'də saat 09:11 ' da 2012-11-18 09:11

Bash ayarlarımda aşağıdakıları istifadə edirəm:

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

Daha sonra zəng edə bilərsiniz:

 git-shoot branchname 
152
03 апр. Cavab verildi crizCraig 03 Apr. 2013-04-03 01:11 '13 'da 1:11' də 2013-04-03 01:11

2013-cü ilin yanvar ayından etibarən, GitHub "Filiallar" səhifəsinin hər bir filialının yanındakı " Sil" düyməsini silin .

Müvafiq blog postası: filialların yaradılması və silinməsi

120
29 апр. Cavab 29 Apreldə Nacho Coloma tərəfindən verilir 2013-04-29 13:39 '13 at 13:39 2013-04-29 13:39

Bu əməllərin hər ikisini bir komanda ilə yerinə yetirmək istəyirsinizsə, ~/.gitconfig aşağıda əlavə edin:

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

Alternativ olaraq, bunu qlobal konfiqurasiya ilə komanda xəttindən istifadə edə bilərsiniz

112
15 янв. Ryan Kohn tərəfindən 15 yanvarda cavab verildi 2013-01-15 22:05 '13 saat 10:05 'da 2013-01-15 22:05

Bir filialı yerli və uzaqdan silmək üçün

  • Şöbə - git checkout master satın alın

  • Uzaq şöbəni git push origin --delete <branch-name> - git push origin --delete <branch-name>

  • Yerli şöbəni silin - git branch --delete <branch-name>

106
04 янв. Cavab mfathy00 04 yanvar verilir 2016-01-04 00:08 '16 'da 0:08' da 2016-01-04 00:08

Yerli olaraq sil:

Yerli bir filialı silmək üçün aşağıdakıları istifadə edə bilərsiniz:

 git branch -d <branch_name> 

Filialı silməyə məcbur etmək üçün, -D əvəzinə -D istifadə edin.

 git branch -D <branch_name> 

Uzaqdan silin:

İki variant var:

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

Daha çox intuitiv olduğu üçün 2-ci metoddan istifadə etməyinizi xahiş edirəm.

103
23 мая '15 в 11:56 2015-05-23 11:56 Cavab Rəhul Qupta tərəfindən 23 May '15 'də saat 11:56' də verilir

Bunu da git remote prune origin istifadə edərək edə bilərsiniz

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

git branch -r siyahısından kənar izləmə filiallarını qaldırır və rədd edir.

97
12 марта '13 в 17:57 2013-03-12 17:57 cavab 12 mart '13 'də saat 17:57' də nikeleyle verilir 2013-03-12 17:57

Digər cavablara əlavə olaraq, git_remote_branch alətini tez-tez istifadə edirəm. Bu isteğe bağlı bir quraşdırmadır, ancaq uzaq şöbələrlə qarşılıqlı əlaqə yaratmaq üçün rahat bir yol verir. Bu halda, silmək:

 grb delete branch 

Mən tez-tez publishtrack əmrlərdən istifadə edirəm.

95
24 марта '12 в 5:21 2012-03-24 05:21 Cavab verilir: u2622 24 mart 2012-ci il, 5:21. 2012-03-24 05:21

Filialların silinməsi

Təsəvvür edin ki, "təmas forması" şöbəsi üzərində işimiz başa çatdı və biz onu artıq "ustaya" inteqrasiya etdik. Biz artıq ehtiyacımız olmadığı üçün onu (yerli olaraq) silə bilərik:

 $ git branch -d contact-form 

Uzaq bir filialı silmək üçün:

 git push origin --delete contact-form 
86
30 окт. Cavab Ulysses Alves 30 okta verilir. 2015-10-30 15:39 '15 saat 15:39 'də 2015-10-30 15:39

Bir liner komutu həm yerli, həm də uzaqdan silinir:

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

və ya ~ / .gitconfig-də bir alias əlavə edin; istifadə: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. Cavab Vinnie James 17 noyabrda verilir . 2016-11-17 04:03 '16 'da 4:03' de 2016-11-17 04:03

Uzaq bir filialı silin

git push origin :<branchname>

Yerli şöbəni silin

git branch -D <branchname>

Yerli keçid addımlarını silin:

  • başqa şöbəyə baxın
  • yerli şöbəni silin
82
31 дек. Cavab cayxhj 31 dekabr verilir. 2015-12-31 12:22 '16 'da saat 12:22' da, 2015-12-31 12:22

Sadəcə deyin:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. 23 apreldə piyushmandovra tərəfindən verilən cavab 2015-04-23 21:06 '15 at 21:06 2015-04-23 21:06

İndi bunu GitHub Masaüstü proqramı ilə edə bilərsiniz.

Tətbiqə başladıqdan sonra

  • Filialı olan layihəni basın
  • Silmək istədiyiniz filiala gedin. 2019
22 окт. Cavab Eric tərəfindən 22 oktyabrda verilir . 2015-10-22 10:38 '15 'da 10:38' da, 2015-10-22 10:38 'da

Yerli olaraq - (Normal) silmək üçün,

 git branch -d my_branch 

Filialınız bərpa / birləşmə prosesindədirsə və düzgün aparılmadıysa, bu halda Yenidən Rebase/Merge in progress səhv mesajı alacaqsınız, buna görə də filialınızı silə bilməyəcəksiniz.

Beləliklə, ya daşma / birləşməyə icazə vermək lazımdır, əks halda siz istifadə edərək zorla çıxara bilərsiniz

 git branch -d my_branch 

Uzaqdan silmək üçün:

 git push --delete origin my_branch 

Eyni şeyi istifadə edə bilərsiniz

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

Qrafik təqdimat

2019

23 июня '17 в 9:42 2017-06-23 09:42 Cavab Mohideen ibn Mohammed tərəfindən 23 iyun '17' də 9:42 2017-06-23 09:42 'də verilir
 git push origin --delete <branch Name> 

daha xatırlamaq daha asan

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 cavab Smila 02 May '15 saat 13:59 'də verilir

Uzaqdan idarəetmə şöbəsi ilə eyni adı olan bir etiketiniz varsa, bu işləməyəcəkdir:

 $ 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 halda, filanı silmək istədiyinizi göstərməyin, etiketi deyil:

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

Eyni şəkildə, bir filial yerinə bir etiket aradan qaldırılması üçün istifadə etməlisiniz:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 cavab 29 iyul '14 'də saat 12:02' də verildi

Bu cavabın arxasında baxmaq məni narahat etdi, buna görə də crizCraig'in əvvəllər nəşr etdiyi cavablara bənzər bir yanaşma etdi.

Baş profilimə aşağıdakılar əlavə edilir:

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

Sonra bir şöbə ilə bunu etdiyim hər dəfə (məsələn, master birləşdirmək) mənim terminalimdə aşağıdakıları yerinə yetirirəm:

 gitdelete my-branch-name 

... sonra my-branch-name origin yerli olaraq qaldırır.

48
10 февр. Cavabına arthurakay verildi 10 fevral. 2016-02-10 22:47 '16 saat 10:47 'da 2016-02-10 22:47

Bir çox digər cavab səhv / xəbərdarlıqlara səbəb olacaq. Bu yanaşma git branch -D branch_to_delete baxmayaraq ki, hələ də git branch -D branch_to_delete ehtiyac var - git branch -D branch_to_delete , tamamilə birləşməsə, məsələn, some_other_branch .

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

Silinmiş filialı silmək üçün silinmə tələb olunmur. Yalnız təqib etdiyiniz saxlamada mövcud olan ən qabaqcıl uzaqdan idarələri əldə etmək üçün istifadə edilmişdir. Mən git fetch , konsolları əlavə edəcəyini hiss etdim, onları çıxarmayacağam. git remote prune origin bir şey həqiqətən bir şey zaman bir nümunəsidir:

İstifadəçi A yuxarıda göstərilən addımları yerinə yetirir. İstifadəçi B ən uzaq şöbələri görmək üçün aşağıdakı əmrləri işə salacaqdır.

 git fetch git remote prune origin git branch -r 
47
27 нояб. Cavab 27 noyabrda Brandon Cook tərəfindən verilir . 2013-11-27 06:04 '13 'da 6:04' da 2013-11-27 06:04

Tədbirdən əvvəl

 git branch --delete <branch> 

Əvvəldən uzaq şöbənin adı nədir olduğunu müəyyənləşdirdiyinizə əmin olun:

 git ls-remote 

Bu <branch> dəyərinə tam olaraq nə daxil edəcəyinizi izah edəcək. ( branch həssas!)

44
21 мая '16 в 0:42 2016-05-21 00:42 joey tərəfindən 21 May 'da verildi cavab '16 at 0:42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Əgər onu aradan qaldırmaq istədiyinizə əminsənsə, işləyin

 git branch -D bugfix 

İndi uzaqdan uzaq filialların təmizlənməsi davam edir.

 git remote prune origin 
43
21 апр. cavab Vivek 21 apr verilir . 2016-04-21 19:49 '16 at 07:49 PM 2016-04-21 19:49

Mashup bütün digər cavablar. Ruby 1.9.3+ + tələb edir, yalnız OS X-də test edilir.

Bu faylın adını git-remove , yerinə yetirmək və yolunuza qoyun. Daha sonra istifadə edin, məsələn, git remove temp .

41
20 нояб. cavab Dan Rosenstark 20 noyabrda verilir . 2013-11-20 00:02 '13 'da 0:02 2013-11-20 00:02
  • 1
  • 2

tags ilə bağlı digər suallar və ya bir sual