Kako ukloniti Git granu lokalno i daljinski?

Želim izbrisati podružnicu na lokalnoj razini i na udaljenom projektu na GitHubu .

Nije moguće izbrisati izbrisanu granu

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

Što moram učiniti drugačije kako bih uspješno uklonio remotes/origin/bugfix lokalno i na GitHubu?

14380
05 янв. Matthew Rankin postavljen je 05. siječnja 2010-01-05 04:12 '10 u 4:12 2010-01-05 04:12
@ 40 odgovora
  • 1
  • 2

Sažetak

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

Napominjemo da je u većini slučajeva izbrisano ime origin .

Izbrišite lokalnu granu

Da biste izbrisali lokalnu podružnicu, upotrijebite jedno od sljedećeg:

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

Napomena. Parametar -d je pseudonim za --delete , koji briše granu samo ako je već u potpunosti spojen s nadređenom granom. Također možete koristiti -d , koji je alias za --delete --force , koji briše granu "bez obzira na kombinirani status". [Izvor: man git-branch ]

Brisanje izbrisane niti [Ažurirano 8. rujna 2017.]

Počevši od Git v1.7.0 , možete izbrisati izbrisanu granu pomoću

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

ono što je lakše zapamtiti nego

 $ git push <remote_name> :<branch_name> 

koji je dodan u Git v1.5.0 "za uklanjanje izbrisane grane ili oznake".

Počevši od Git v2.8.0, također možete koristiti git push s -d kao alias za --delete .

Dakle, verzija Git-a koju ste instalirali će odrediti trebate li koristiti jednostavniju ili složeniju sintaksu.

Brisanje izbrisane grane [Izvorni odgovor od 5. siječnja 2010]

Iz poglavlja 3 Pro Gita Scotta Chacona:

Brisanje izbrisanih grana

Pretpostavimo da ste završili s udaljenom granom - recimo, vi i vaši suradnici završili ste s nekom funkcijom i kombinirali je s glavnom granom udaljenog (ili bilo koje druge grane koja sadrži vašu stabilnu liniju koda). Možete izbrisati udaljenu granu koristeći prilično tupu sintaksu git push [remotename] :[branch] . Ako želite ukloniti zakrpu poslužitelja s poslužitelja, učinite sljedeće:

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

Bum. Nema više grana na vašem poslužitelju. Možda ćete htjeti vidjeti ovu stranicu jer vam je potrebna ova naredba i najvjerojatnije ćete zaboraviti sintaksu. Da bi zapamtili ovu naredbu, git push [remotename] [localbranch]:[remotebranch] sintaksa git push [remotename] [localbranch]:[remotebranch] je git push [remotename] [localbranch]:[remotebranch] koju smo pregledali malo ranije. Ako ste [localbranch] dio [localbranch] , onda u osnovi kažite: "Ne uzimajte ništa na moju stranu i učinite to [remotebranch] ".

Izdao sam git push origin :bugfix i dobro je funkcionirao. Scott Chacon je bio u pravu - želim slušati ovu stranicu (ili, zapravo, psa uho, reagirajući na njega u Stack Overflowu).

Onda to morate učiniti na drugim strojevima.

 git fetch --all --prune 

propagirati promjene.

17.997
05 янв. Odgovor je dao Matthew Rankin 5. siječnja 2010-01-05 04:13 '10 u 4:13 2010-01-05 04:13

Matthewov je odgovor izvrstan za brisanje izbrisanih grana, a zahvalan sam i za objašnjenje, ali za jednostavnu razliku između dvije naredbe:

Za uklanjanje lokalne podružnice S vašeg uređaja:

git branch -d {the_local_branch} (koristite -D umjesto prisilnog uklanjanja grane bez provjere spojenog stanja)

border=0

Uklanjanje udaljenog poslužitelja s poslužitelja:

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 odgovor je dao Eric Brotto 12. lipnja 2012. u 17:51 2012-06-12 17:51

Kratki odgovori

Ako želite detaljnija objašnjenja sljedećih naredbi, pogledajte duge odgovore u sljedećem odjeljku.

Brisanje udaljene grane:

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

Brisanje lokalne udaljene grane za praćenje:

1697
30 мая '14 в 21:32 2014-05-30 21:32 odgovor je dao korisnik456814 30. svibnja '14 u 21:32 2014-05-30 21:32

Koraci za uklanjanje grane:

za brisanje udaljene grane:

 git push origin --delete <your_branch> 

Da biste izbrisali lokalnu podružnicu, imate tri opcije :

 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 

Objasnite: pa, samo objasnite što se ovdje događa!

Samo izvršite git push origin --delete obrišite za brisanje samo izbrisane grane , dodajte naziv grane na kraju, i oboje će obrisati i poslati je u udaljenu granu ...

Također, git branch -D , koji jednostavno briše samo lokalnu podružnicu! ...

-D znači --delete --force koji briše granu, čak i ako nije spojena (prisilno brisanje), ali također možete koristiti -D što znači --delete koji - --delete pogrešku koja odgovara stanju spajanja grane ...

U nastavku kreiram i sliku za prikaz koraka:

2019

Također možete koristiti sljedeće za uklanjanje izbrisane grane.

 git push --delete origin serverfix 

Što znači isto

 git push origin :serverfix 

ali možda je lakše zapamtiti.

719
28 окт. odgovor dan pagetribe 28 listopad. 2011-10-28 01:22 '11 u 1:22 2011-10-28 01:22

Ako želite izbrisati granu, prvo izađite u granu koja nije grana koju želite izbrisati.

 git checkout other_than_branch_to_be_deleted 

Brisanje lokalne podružnice:

 git branch -D branch_to_be_deleted 

Brisanje udaljene grane:

 git push origin --delete branch_to_be_deleted 
350
07 окт. odgovor je dao Praveen Hiremath 07. listopada 2014-10-07 16:52 '14 u 16:52 2014-10-07 16:52

Savjet: prilikom brisanja grana s

 git push origin :<branchname> # deletes remote branch 

Brišu se samo veze. Iako je grana zapravo izbrisana, veze na njega još uvijek postoje u lokalnim spremištima članova vašeg tima. To znači da su za ostale članove tima udaljene grane još uvijek vidljive kada rade git branch -a .

Da biste riješili ovaj problem, članovi vašeg tima mogu izbrisati izbrisane grane pomoću

 git remote prune <repository> 

To je obično git remote prune origin .

338
07 нояб. odgovor je dat pfrenssen 07 Nov. 2012-11-07 16:02 '12 u 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 окт. odgovor dat Felipeu 24. listopada. 2013-10-24 20:36 '13 u 20:36 sati 2013-10-24 20:36

Jednostavno je: samo pokrenite sljedeću naredbu:

Da biste uklonili Git granu lokalno i daljinski, najprije uklonite lokalnu podružnicu pomoću naredbe:

 git branch -d example 

(ovdje je example naziv podružnice)

Nakon toga izbrišite izbrisanu granu pomoću naredbe:

 git push origin :example 
215
15 февр. odgovorio je na Syeful Islam 15. veljače 2015-02-15 18:20 '15 u 18:20 2015-02-15 18:20

Drugi pristup:

 git push --prune origin 

PAŽNJA: Ovo će izbrisati sve udaljene grane koje ne postoje lokalno. Ili sveobuhvatnije,

 git push --mirror 

učinkovito napraviti udaljeno spremište kao lokalna kopija spremišta (lokalna zaglavlja, daljinski upravljači i oznake se reflektiraju na daljinskom upravljaču).

181
18 нояб. Odgovor danog imanuelkostiganom 18. studenoga 2012-11-18 09:11 '12 u 9:11 2012-11-18 09:11

U postavkama basha koristim sljedeće:

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

Tada možete nazvati:

 git-shoot branchname 
152
03 апр. Odgovor je dan crizCraig 03 Apr. 2013-04-03 01:11 '13 u 1:11 2013-04-03 01:11

Od siječnja 2013. GitHub je uključio gumb Izbriši granu pored svake grane na stranici "Podružnice".

Relevantan blog post: stvaranje i brisanje grana

120
29 апр. odgovor je dao Nacho Coloma 29. travnja 2013-04-29 13:39 '13 u 13:39 2013-04-29 13:39

Ako želite izvršiti obje ove radnje s jednom naredbom, možete ih ~/.gitconfig dodavanjem ~/.gitconfig u svoj:

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

Alternativno, ovo možete dodati u svoju globalnu konfiguraciju iz naredbenog retka pomoću

112
15 янв. Odgovor dao Ryan Kohn 15. siječnja 2013-01-15 22:05 '13 u 22:05 2013-01-15 22:05

Za brisanje grane lokalno i daljinski

  • Kupite u glavnom git checkout master za izdavanje podružnica

  • Izbrišite udaljenu podružnicu - git push origin --delete <branch-name>

  • Izbrišite lokalnu podružnicu - git branch --delete <branch-name> granice git branch --delete <branch-name>

106
04 янв. odgovor je dat mfathy00 04. \ t 2016-01-04 00:08 '16 u 0:08 2016-01-04 00:08

Brisanje lokalno:

Za brisanje lokalne podružnice možete koristiti:

 git branch -d <branch_name> 

Da biste prisilili granu na brisanje, upotrijebite -D umjesto -D .

 git branch -D <branch_name> 

Izbriši daljinski:

Postoje dvije opcije:

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

Predlažem vam da koristite drugu metodu, jer je intuitivnija.

103
23 мая '15 в 11:56 2015-05-23 11:56 odgovor je dao Rahul Gupta 23. svibnja, '15 u 11:56 2015-05-23 11:56

To možete učiniti i pomoću git remote prune origin

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

Uklanja i uklanja grane za daljinsko praćenje s git branch -r popisa.

97
12 марта '13 в 17:57 2013-03-12 17:57 odgovor je nickleefly 12. ožujka '13 u 17:57 2013-03-12 17:57

Osim drugih odgovora, često koristim i alat git_remote_branch . Ovo je opcionalna instalacija, ali vam daje praktičan način za interakciju s udaljenim granama. U tom slučaju izbrišite:

 grb delete branch 

Smatram da često koristim i naredbe za publish i track .

95
24 марта '12 в 5:21 2012-03-24 05:21 odgovor je dat u2622 24. ožujka 2012. u 5:21 2012-03-24 05:21

Brisanje grana

Pretpostavimo da je naš rad na grani "kontakt-forme" završen i već smo ga integrirali u "majstora". Budući da je više ne trebamo, možemo ga izbrisati (lokalno):

 $ git branch -d contact-form 

I za brisanje udaljene grane:

 git push origin --delete contact-form 
86
30 окт. odgovor je dat Ulysses Alves 30. listopada. 2015-10-30 15:39 '15 u 15:39 2015-10-30 15:39

Jedna naredba linera uklanja i lokalno i udaljeno:

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

ili dodajte pseudonim ispod u ~ / .gitconfig; upotreba: git kill branch-name

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

Brisanje udaljene grane

git push origin :<branchname>

Izbrišite lokalnu granu

git branch -D <branchname>

Izbriši lokalne korake prijelaza:

  • provjerite na drugoj grani
  • izbrišite lokalnu granu
82
31 дек. Odgovor je dan jayxhj 31. prosinca. 2015-12-31 12:22 '16 u 12:22 2015-12-31 12:22

Samo reci:

 git branch -d <branch-name> git push origin :<branch-name> 
80
23 апр. odgovor od piyushmandovra dana 23. travnja 2015-04-23 21:06 '15 u 21:06 2015-04-23 21:06

Sada to možete učiniti pomoću aplikacije GitHub Desktop .

Nakon pokretanja aplikacije

  • Kliknite projekt koji sadrži granu
  • Idite na granu koju želite izbrisati. 2019
22 окт. Odgovor je dao Eric 22. listopada. 2015-10-22 10:38 '15 u 10:38 2015-10-22 10:38

Za brisanje lokalno - (Normalno),

 git branch -d my_branch 

Ako je vaša podružnica u procesu oporavka / spajanja i nije ispravno učinjena, dobit ćete poruku o Rebase/Merge in progress , tako da u tom slučaju nećete moći izbrisati podružnicu.

Dakle, ili vašu potrebu za dopuštanjem prelijevanja / spajanja, inače možete silom ukloniti pomoću

 git branch -d my_branch 

Brisanje u daljinskom:

 git push --delete origin my_branch 

može koristiti istu stvar

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

Grafički prikaz

2019

 git push origin --delete <branch Name> 

lakše zapamtiti nego

 git push origin :branchName 
68
02 мая '15 в 13:59 2015-05-02 13:59 odgovor je dat Smila 02 svibanj '15 u 13:59 2015-05-02 13:59

To neće raditi ako imate oznaku s istim nazivom kao i grana daljinskog upravljača:

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

U tom slučaju morate navesti da želite izbrisati granu, a ne oznaku:

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

Isto tako, da biste uklonili oznaku umjesto ogranka, morate upotrijebiti:

 git push origin :refs/tags/branch-or-tag-name 
60
29 июля '14 в 12:02 2014-07-29 12:02 odgovor je dat Amiramix 29. srpnja '14 u 12:02 2014-07-29 12:02

Bio sam ljut zbog toga da pogledam iza tog odgovora, pa sam sličan pristup dao i odgovoru koji je Craig ranije objavio.

Sljedeće se dodaje mom profilu bash:

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

Zatim, svaki put kad to radim s granom (na primjer, spajanjem s master ), pokrećem sljedeće na svom terminalu:

 gitdelete my-branch-name 

... koji zatim uklanja my-branch-name iz origin kao lokalno.

48
10 февр. Odgovor je dat arthurakay 10. veljače. 2016-02-10 22:47 '16 u 22:47 sati 2016-02-10 22:47

Mnogi drugi odgovori će dovesti do pogrešaka / upozorenja. Ovaj pristup je relativan za git branch -D branch_to_delete iako vam još uvijek treba git branch -D branch_to_delete ako nije potpuno spojen, na primjer, u some_other_branch .

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

Brisanje nije potrebno ako obrišete izbrisanu granu. Koristio se samo za dobivanje najnaprednijih daljinskih upravljača dostupnih u pohrani koju pratite. Primijetio sam da će git fetch dodati konzole, a ne ukloniti ih. Evo primjera kada git remote prune origin stvarno radi nešto:

Korisnik A izvodi gore opisane korake. Korisnik B će pokrenuti sljedeće naredbe kako bi vidio najnovije udaljene grane.

 git fetch git remote prune origin git branch -r 
47
27 нояб. Odgovor daje Brandon Cook 27. studenog. 2013-11-27 06:04 '13 u 6:04 2013-11-27 06:04

Prije izvođenja

 git branch --delete <branch> 

provjerite jeste li najprije definirali što je EXACT naziv udaljene grane pokretanjem:

 git ls-remote 

To će vam reći što točno trebate unijeti za vrijednost <branch> . (osjetljiva na velika i mala slova!)

44
21 мая '16 в 0:42 2016-05-21 00:42 odgovor je dao joey 21. svibnja '16 u 0:42 2016-05-21 00:42
 git push origin :bugfix # Deletes remote branch git branch -d bugfix # Must delete local branch manually 

Ako ste sigurni da ga želite ukloniti, pokrenite

 git branch -D bugfix 

Sada je u tijeku čišćenje udaljenih udaljenih grana.

 git remote prune origin 
43
21 апр. odgovor je dat Vivek 21 apr. 2016-04-21 19:49 '16 u 19:49 2016-04-21 19:49

Mashup sve ostale odgovore. Zahtijeva Ruby 1.9.3+ , testiran samo na OS X.

Imenujte ovu datoteku git-remove , učinite je izvršnom i stavite je na svoj put. Zatim upotrijebite npr. git remove temp .

41
20 нояб. odgovor je dan Dan Rosenstark 20 Nov. 2013-11-20 00:02 '13 u 0:02 2013-11-20 00:02
  • 1
  • 2

Ostala pitanja o oznakama ili Ask a Question