Як выдаліць галіна Git як лакальна, так і выдалена?

Я хачу выдаліць галіна як лакальна, так і ў маёй выдаленай праектнай відэльцу на GitHub .

Не атрымалася выдаліць выдаленую галіна

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

Што мне трэба зрабіць па-іншаму, каб паспяхова выдаліць remotes/origin/bugfix як лакальна, так і на GitHub?

14380
05 янв. зададзены Matthew Rankin 05 студз. 2010-01-05 04:12 '10 года ў 4:12 2010-01-05 04:12
@ 40 адказаў
  • 1
  • 2

кіравальнае рэзюмэ

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

Звярніце ўвагу, што ў большасці выпадкаў выдаленае імя з'яўляецца origin .

Выдаліць лакальную галінку

Каб выдаліць лакальную галінку, выкарыстоўвайце адно з наступных:

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

Заўвага. Параметр -d з'яўляецца псеўданімам для --delete , які выдаляе галіна толькі ў тым выпадку, калі яна ўжо цалкам аб'яднаная з вышэйстаячай галіной. Вы таксама можаце выкарыстоўваць -d , які з'яўляецца псеўданімам для --delete --force , які выдаляе галінку "незалежна ад яе аб'яднанага статусу". [Крыніца: man git-branch ]

Выдаліць выдаленую галінку [Абнаўленне 8 верасня 2017 г.]

Пачынаючы з Git v1.7.0 , вы можаце выдаліць выдаленую галінку, выкарыстоўваючы

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

што можа быць лягчэй запомніць, чым

 $ git push <remote_name> :<branch_name> 

які быў дададзены ў Git v1.5.0 "для выдалення выдаленай галінкі або тэга".

Пачынаючы з Git v2.8.0 вы таксама можаце выкарыстоўваць git push з -d ў якасці псеўданіма для --delete .

Такім чынам, версія Git, якую вы ўсталявалі, будзе вызначаць, ці трэба вам выкарыстоўваць больш просты або складаны сінтаксіс.

Выдаліць выдаленую галінку [Арыгінальны адказ ад 5 студзеня 2010 г.]

З кіраўніка 3 Pro Git Скота Чаконы:

Выдаленне аддаленых галінак

Выкажам здагадку, што вы скончылі з выдаленай галінкай - скажам, вы і вашыя сааўтары скончылі з функцыяй і аб'ядналі яе з вашай галоўнай галінкай аддаленых (ці любы іншы галінкай, у якой знаходзіцца ваша стабільная радок кода). Вы можаце выдаліць выдаленую галінку, выкарыстоўваючы даволі тупой сінтаксіс git push [remotename] :[branch] . Калі вы хочаце выдаліць галінку выпраўлення сервера з сервера, выканайце наступнае:

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

Boom. Няма больш галінкі на вашым серверы. Магчыма, вы захочаце праглядзець гэтую старонку, таму што вам спатрэбіцца гэтая каманда, і вы, хутчэй за ўсё, забудзецеся сінтаксіс. Каб запомніць гэтую каманду, git push [remotename] [localbranch]:[remotebranch] сінтаксіс git push [remotename] [localbranch]:[remotebranch] які мы разгледзелі ледзь раней. Калі вы [localbranch] частка [localbranch] , то ў асноўным кажаце: "Нічога не бяры на маёй баку і зрабі яго [remotebranch] ".

Я выпусціў git push origin :bugfix і ён працаваў выдатна. Скот Чаконы меў рацыю - я захачу выслухаць гэтую старонку (ці, фактычна, сабачае вуха, адказаўшы на гэта ў перапоўненых стэка).

Затым вы павінны выканаць гэта на іншых машынах

 git fetch --all --prune 

распаўсюджваць змены.

17997
05 янв. адказ дадзены Matthew Rankin 05 студз. 2010-01-05 04:13 '10 у 04:13 2010-01-05 04:13

Адказ Matthew выдатна падыходзіць для выдалення аддаленых галін, і я таксама ўдзячны за тлумачэнне, але для простага адрозненні паміж двума камандамі:

Каб выдаліць лакальную галіна з вашага прылады:

git branch -d {the_local_branch} (выкарыстоўвайце -D замест таго, каб прымусова выдаліць галіна без праверкі аб'яднанага стану)

border=0

Каб выдаліць сервер выдаленую галіна з сервера:

git push origin --delete {the_remote_branch}

Спасылка: https://makandracards.com/makandra/621-git-delete-a-branch-local-or-remote

2944
12 июня '12 в 17:51 2012-06-12 17:51 адказ дадзены Eric Brotto 12 чэрвеня '12 у 17:51 2012-06-12 17:51

кароткія адказы

Калі вы хочаце атрымаць больш падрабязныя тлумачэнні наступных каманд, гл. Доўгія адказы ў наступным раздзеле.

Выдаленне выдаленай галінкі:

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

Выдаленне лакальнай галінкі аддаленага адсочвання:

1697
30 мая '14 в 21:32 2014-05-30 21:32 адказ дадзены user456814 30 мая '14 у 21:32 2014/05/30 21:32

Крокі па выдаленні галінкі:

для выдалення выдаленай галінкі:

 git push origin --delete <your_branch> 

Для выдалення лакальнай галінкі ў вас ёсць тры спосабу:

 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 

Растлумачце: добра, проста растлумачце, што тут адбываецца!

Проста выканайце git push origin --delete каб выдаліць ТОЛЬКІ выдаленую галіна, дадайце імя галінкі ў канцы, і гэта адначасова выдаліць і адправіць яе на выдаленую галінку ...

Таксама, git branch -D , які проста выдаляе ТОЛЬКІ лакальную галінку! ...

-D пазначае --delete --force якая выдаляе галінку, нават калі яна не аб'яднаная (прымусовае выдаленне), але вы таксама можаце выкарыстоўваць -D што пазначае --delete якая --delete памылку, якая адпавядае стане зліцця галіны ...

Я таксама ствараю малюнак ніжэй, каб паказаць крокі:

2019

Вы таксама можаце выкарыстоўваць наступнае, каб выдаліць выдаленую галінку

 git push --delete origin serverfix 

Які робіць тое ж самае, што і

 git push origin :serverfix 

але гэта можа быць лягчэй запомніць.

719
28 окт. адказ дадзены pagetribe 28 каст. 2011-10-28 01:22 '11 у 01:22 2011-10-28 01:22

Калі вы хочаце выдаліць галіна, спачатку выйдзіце ў галінку, выдатную ад галінкі, якую трэба выдаліць.

 git checkout other_than_branch_to_be_deleted 

Выдаленне лакальнай галінкі:

 git branch -D branch_to_be_deleted 

Выдаленне выдаленай галінкі:

 git push origin --delete branch_to_be_deleted 
350
07 окт. адказ дадзены Praveen Hiremath 07 каст. 2014-10-07 16:52 '14 у 16:52 2014/10/07 16:52

Савет: пры выдаленні галінак з дапамогай

 git push origin :<branchname> # deletes remote branch 

выдаляюцца толькі спасылкі. Нягледзячы на ​​тое, што галінка на самай справе выдаленая, спасылкі на яе ўсё яшчэ існуюць у лакальных рэпазітарах членаў вашай каманды. Гэта азначае, што для іншых членаў каманды аддаленыя галінкі ўсё яшчэ бачныя, калі яны робяць git branch -a .

Каб вырашыць гэтую праблему, члены вашай каманды могуць выдаліць аддаленыя галінкі з дапамогай

 git remote prune <repository> 

Звычайна гэта git remote prune origin .

338
07 нояб. адказ дадзены pfrenssen 07 лістапада. 2012-11-07 16:02 '12 у 16: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 окт. адказ дадзены Felipe 24 каст. 2013-10-24 20:36 '13 а 20:36 2013/10/24 20:36

Гэта проста: проста запусціце наступную каманду:

Каб выдаліць галіна Git як лакальна, так і выдалена, спачатку выдаліце ​​лакальную галінку з дапамогай каманды:

 git branch -d example 

(тут example - імя галінкі)

І пасля гэтага выдаліце ​​выдаленую галінку з дапамогай каманды:

 git push origin :example 
215
15 февр. адказ дадзены Syeful Islam 15 февр. 2015-02-15 18:20 '15 у 18:20 2015/02/15 18:20

Іншы падыход:

 git push --prune origin 

УВАГА: Гэта выдаліць усе выдаленыя галінкі, якія не існуюць лакальна. Або больш усебакова,

 git push --mirror 

эфектыўна зробіць аддалены рэпазітар падобным на лакальную копію рэпазітара (лакальныя загалоўкі, пульты і тэгі адбіваюцца на выдаленым).

181
18 нояб. адказ дадзены imanuelcostigan 18 лістапада. 2012-11-18 09:11 '12 у 9:11 2012/11/18 09:11

Я выкарыстоўваю наступнае ў маіх наладах Bash :

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

Тады вы можаце патэлефанаваць:

 git-shoot branchname 
152
03 апр. адказ дадзены crizCraig 03 крас. 2013-04-03 01:11 '13 у 01:11 2013/04/03 01:11

Са студзеня 2013 года GitHub уключаў кнопку Delete branch побач з кожнай галінай на старонцы "Галіны".

Адпаведнае паведамленне ў блогу: ствараць і выдаляць галінак

120
29 апр. адказ дадзены Nacho Coloma 29 крас. 2013-04-29 13:39 '13 у 13:39 2013/04/29 13:39

Калі вы хочаце выканаць абодва гэтых дзеянні з дапамогай адной каманды, вы можаце зрабіць для яе псеўданім, дадаўшы ніжэй да вашага ~/.gitconfig :

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

У якасці альтэрнатывы вы можаце дадаць гэта ў сваю глабальную канфігурацыю з каманднага радка, выкарыстоўваючы

112
15 янв. адказ дадзены Ryan Kohn 15 студз. 2013-01-15 22:05 '13 у 22:05 2013/01/15 22:05

Каб выдаліць філіял лакальна і выдалена

  • Аформіць куплю ў галінцы - git checkout master

  • Выдаліце выдаленую галінку - git push origin --delete <branch-name>

  • Выдаліце лакальную галінку - git branch --delete <branch-name>

106
04 янв. адказ дадзены mfathy00 04 студз. 2016-01-04 00:08 '16 у 0:08 2016/01/04 00:08

Выдаліць лакальна:

Каб выдаліць лакальную галінку, вы можаце выкарыстаць:

 git branch -d <branch_name> 

Каб прымусова выдаліць галінку, выкарыстоўвайце -D замест -D .

 git branch -D <branch_name> 

Выдаліць выдалена:

Ёсць два варыянты:

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

Я б прапанаваў вам выкарыстоўваць 2-й спосаб, так як ён больш інтуітыўна зразумелы.

103
23 мая '15 в 11:56 2015-05-23 11:56 адказ дадзены Rahul Gupta 23 мая '15 у 11:56 2015/05/23 11:56

Вы таксама можаце зрабіць гэта, выкарыстоўваючы git remote prune origin

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

Ён выдаляе і выдаляе галінкі аддаленага адсочвання са спісу git branch -r .

97
12 марта '13 в 17:57 2013-03-12 17:57 адказ дадзены nickleefly 12 сакавіка '13 у 17:57 2013/03/12 17:57

У дадатак да іншых адказам я часта выкарыстоўваю інструмент git_remote_branch . Гэта дадатковая ўстаноўка, але яна дае вам зручны спосаб ўзаемадзеяння з выдаленымі Ветка. У гэтым выпадку выдаліць:

 grb delete branch 

Я знаходжу, што я таксама часта выкарыстоўваю каманды publish і track

95
24 марта '12 в 5:21 2012-03-24 05:21 адказ дадзены u2622 24 сакавіка '12 у 05:21 2012-03-24 05:21

выдаленне галін

Выкажам здагадку, што наша праца над галінкай "кантакт-форма" выканана, і мы ўжо інтэгравалі яе ў "майстар". Паколькі нам гэта больш не трэба, мы можам выдаліць яго (лакальна):

 $ git branch -d contact-form 

І для выдалення выдаленай галінкі:

 git push origin --delete contact-form 
86
30 окт. адказ дадзены Ulysses Alves 30 каст. 2015-10-30 15:39 '15 у 15:39 2015/10/30 15:39

Адна каманда liner выдаляе як лакальныя, так і выдаленыя:

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

або дадайце псеўданім ніжэй у ~ / .gitconfig; выкарыстанне: git kill branch-name

 [alias] kill = "!f(){ git branch -D \"$1\"; git push origin --delete \"$1\"; };f" 
85
17 нояб. адказ дадзены Vinnie James 17 лістапада. 2016-11-17 04:03 '16 у 04:03 2016/11/17 04:03

Выдаліць выдаленую галіна

git push origin :<branchname>

Выдаліць лакальную галіна

git branch -D <branchname>

Выдаліць крокі лакальнага пераходу:

  • праверка на іншую галінку
  • выдаліць лакальную галіна
82
31 дек. адказ дадзены jayxhj 31 снеж. 2015-12-31 12:22 '16 у 12:22 2015/12/31 00:22

Проста скажыце:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. адказ дадзены piyushmandovra 23 крас. 2015-04-23 21:06 '15 а 21:06 2015/04/23 21:06

Цяпер вы можаце зрабіць гэта з дапамогай прыкладання GitHub Desktop .

Пасля запуску прыкладання

  • Націсніце праект, які змяшчае галінку
  • Перайдзіце да галінкі, якую вы хочаце выдаліць 2019
22 окт. адказ дадзены Eric 22 каст. 2015-10-22 10:38 '15 г. у 10:38 2015/10/22 10:38

Каб выдаліць лакальна - (Звычайны),

 git branch -d my_branch 

Калі ваша галінка ў працэсе аднаўлення / зліцця і што гэта не было зроблена правільна, вы атрымаеце паведамленне пра памылку Rebase/Merge in progress , таму ў гэтым выпадку вы не зможаце выдаліць сваю галінку.

Такім чынам, альбо ваша неабходнасць дазваляць перапаўненне / зліццё у адваротным выпадку вы можаце прымусова выдаліць, выкарыстоўваючы

 git branch -d my_branch 

Каб выдаліць ў Remote:

 git push --delete origin my_branch 

можа выкарыстоўваць тое ж самае,

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

графічнае прадстаўленне

2019

 git push origin --delete <branch Name> 

лягчэй запомніць, чым

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 адказ дадзены Smila 02 мая '15 у 13:59 2015/05/02 13:59

Гэта не будзе працаваць, калі ў вас ёсць тэг з тым жа імем, што і галінка на пульце:

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

У гэтым выпадку вам трэба паказаць, што вы хочаце выдаліць галінку, а не тэг:

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

Сапраўды гэтак жа, каб выдаліць тэг замест галінкі, вы павінны выкарыстоўваць:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 адказ дадзены Amiramix 29 ліпеня '14 а 12:02 2014/07/29 00:02

Мне прыкра было зазірнуць за гэты адказ, таму я зрабіў аналагічны падыход на адказ, які раней апублікаваў crizCraig

У мой профіль Bash дададзена наступнае:

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

Затым кожны раз, калі я раблю гэта з галінкай (напрыклад, зліццё ў master ), я запускаю ў маім тэрмінале наступнае:

 gitdelete my-branch-name 

... які затым выдаляе my-branch-name з origin як лакальна.

48
10 февр. адказ дадзены arthurakay 10 февр. 2016-02-10 22:47 '16 а 22:47 2016/02/10 22:47

Многія іншыя адказы прывядуць да памылак / папярэджанняў. Гэты падыход з'яўляецца адносна git branch -D branch_to_delete хоць вам усё яшчэ можа спатрэбіцца git branch -D branch_to_delete калі ён не цалкам зліць, напрыклад, у some_other_branch .

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

Выдаленае выдаленне не патрабуецца, калі вы выдалілі выдаленую галінку. Ён выкарыстоўваўся толькі для атрымання самых сучасных пультаў дыстанцыйнага кіравання, даступных у адсочваў вамі сховішча. Я заўважыў, што git fetch дадасць пульты, а не выдаліць іх. Вось прыклад таго, калі git remote prune origin сапраўды нешта зробіць:

Карыстальнік А выконвае крокі, апісаныя вышэй. Карыстальнік B будзе запускаць наступныя каманды, каб убачыць самыя апошнія выдаленыя галінкі

 git fetch git remote prune origin git branch -r 
47
27 нояб. адказ дадзены Brandon Cook 27 лістапада. 2013-11-27 06:04 '13 у 06:04 2013/11/27 06:04

перад выкананнем

 git branch --delete <branch> 

пераканайцеся, што вы спачатку вызначылі, што такое EXACT імя выдаленай галінкі, выканаўшы:

 git ls-remote 

Гэта скажа вам, што ўводзіць ТОЧНО для значэння <branch> . ( branch адчувальны да рэгістра!)

44
21 мая '16 в 0:42 2016-05-21 00:42 адказ дадзены joey 21 мая '16 у 0:42 2016/05/21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Калі вы ўпэўненыя, што хочаце яго выдаліць, запусціце

 git branch -D bugfix 

Цяпер ачыстка аддаленых аддаленых галін выконваецца

 git remote prune origin 
43
21 апр. адказ дадзены Vivek 21 крас. 2016-04-21 19:49 '16 у 19:49 2016/04/21 19:49

Mashup ўсіх іншых адказаў. Патрабуецца Ruby 1.9.3+ , пратэставана толькі на OS X.

Назавіце гэты файл git-remove , зрабіце яго выкананым і змесціце яго па сваім шляху. Затым выкарыстоўвайце, напрыклад, git remove temp .

41
20 нояб. адказ дадзены Dan Rosenstark 20 лістапада. 2013-11-20 00:02 '13 у 0:02 2013/11/20 00:02
  • 1
  • 2

Іншыя пытанні па пазнаках або Задайце пытанне