Jak usunąć gałąź Git zarówno lokalnie jak i zdalnie?

Chcę usunąć gałąź zarówno lokalnie, jak i na moim zdalnym forku projektu na GitHub .

Nieudane próby usunięcia zdalnej gałęzi

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

Co muszę zrobić inaczej, aby skutecznie usunąć remotes/origin/bugfix rozgałęziać zarówno lokalnie jak i na Githubie?

Author: Vadim Kotov, 2010-01-05

30 answers

Streszczenie

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

Zauważ, że w większości przypadków nazwa zdalna to origin.

Usuń Lokalny Oddział

Aby usunąć lokalny oddział użyj jednej z następujących opcji:

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

Uwaga: opcja -d jest aliasem dla --delete, który usuwa gałąź tylko wtedy, gdy została już w pełni scalona w jej gałęzi nadrzędnej. Możesz również użyć -D, który jest aliasem dla --delete --force, który usuwa gałąź " niezależnie od jej scalonego statusu." [Źródło: man git-branch]

Usuń zdalną gałąź [zaktualizowano 8-Sep-2017]

Od Git v1.7.0, możesz usunąć zdalne branch using

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

Co może być łatwiejsze do zapamiętania niż

$ git push <remote_name> :<branch_name>

Który został dodany w Git v1.5.0 "aby usunąć zdalną gałąź lub znacznik."

Począwszy od Git v2.8.0 możesz również użyć git push z opcją -d jako aliasu dla --delete.

Dlatego wersja Git zainstalowany będzie dyktować, czy trzeba używać łatwiejszej lub trudniejszej składni.

Usuń zdalny Oddział [oryginalna odpowiedź z 5-Jan-2010]

Z rozdziału 3Pro Git autor: Scott Chacon:

Usuwanie Zdalnych Gałęzi

Załóżmy, że skończyłeś ze zdalną gałęzią-powiedzmy, że ty i twoi współpracownicy skończyliście z funkcją i połączyliście ją z główną gałęzią zdalnej gałęzi (lub jakąkolwiek gałęzią jest twoja stabilna linia kodowa w). Możesz usunąć zdalną gałąź używając dość rozwartej składni git push [remotename] :[branch]. Jeśli chcesz usunąć gałąź serverfix z serwera, uruchom następujące polecenie:

$ git push origin :serverfix
To [email protected]:schacon/simplegit.git
 - [deleted]         serverfix

Bum. Koniec z branch ' em na twoim serwerze. Możesz chcieć dog-ucho tej strony, ponieważ będziesz potrzebować tego polecenia, i prawdopodobnie zapomnisz składni. Sposobem na zapamiętanie tej komendy jest przywołanie składni git push [remotename] [localbranch]:[remotebranch], którą omówiliśmy nieco wcześniej. Jeśli opuścisz [localbranch] część, to w zasadzie mówisz: "weź nic na mojej stronie i niech będzie [remotebranch]."

Wydałem git push origin :bugfix i działało pięknie. Scott Chacon miał rację-będę chciał psie ucho tej strony (lub praktycznie psie ucho, odpowiadając na to na Stack Overflow).

Następnie należy wykonać to na innych maszynach

git fetch --all --prune

Aby propagować zmiany.

 17578
Author: Matthew Rankin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-06 19:08:34

Odpowiedź Mateusza jest świetna do usuwania zdalnych gałęzi i doceniam również wyjaśnienie, ale aby dokonać prostego rozróżnienia między dwoma poleceniami:

Aby usunąć oddział lokalny z twojej maszyny:

git branch -d {the_local_branch} (zamiast tego użyj -D, Aby wymusić usunięcie gałęzi bez sprawdzania statusu scalonego)

Aby usunąć oddział zdalny z serwera:

git push origin --delete {the_remote_branch}

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

 2907
Author: Eric Brotto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-18 12:33:13

Krótkie Odpowiedzi

Jeśli chcesz bardziej szczegółowe wyjaśnienia poniższych poleceń, zobacz długie odpowiedzi w następnej sekcji.

Usuwanie zdalnej gałęzi:

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

Usunięcie lokalnego oddziału:

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

Usuwanie lokalnej gałęzi zdalnego śledzenia:

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

Długa Odpowiedź: są 3 różne gałęzie do usunięcia!

Kiedy masz do czynienia z usuwaniem gałęzi zarówno lokalnie, jak i zdalnie, pamiętaj, że są 3 różne branże :

  1. oddział lokalny X.
  2. odległa gałąź pochodzenia X.
  3. lokalna gałąź zdalnego śledzenia origin/X, która śledzi zdalną gałąź X.

Wizualizacja 3 oddziałów

Oryginalny plakat użyty

git branch -rd origin/bugfix

Który usunął tylko jego lokalny oddział zdalnego śledzenia origin/bugfix, a nie rzeczywisty zdalny oddział bugfix na origin.

Rysunek 2

Aby usunąć ten rzeczywisty pilot branch, potrzebujesz

git push origin --delete bugfix

Rysunek 3

Dodatkowe Szczegóły

Poniższe sekcje opisują dodatkowe szczegóły, które należy wziąć pod uwagę podczas usuwania gałęzi zdalnego i zdalnego śledzenia.

[79]}naciskanie, aby usunąć zdalne gałęzie, również usuwa gałęzie zdalnego śledzenia [80]}

Zauważ, że usunięcie zdalnej gałęzi X z linii poleceń za pomocą git push usunie również lokalną gałąź zdalnego śledzenia origin/X, nie jest więc konieczne przycinanie przestarzała gałąź zdalnego śledzenia z git fetch --prune lub git fetch -p, choć i tak nie zaszkodzi.

Możesz sprawdzić, czy gałąź zdalnego śledzenia origin/X została również usunięta, uruchamiając następujące polecenie:
# 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

Przycinanie przestarzałego lokalnego zdalnego śledzenia gałęzi origin / X

Jeśli nie usunąłeś zdalnej gałęzi X z wiersza poleceń (jak powyżej), wtedy lokalny repo nadal będzie zawierał (przestarzałą) zdalną gałąź śledzenia origin/X. Może się to zdarzyć, jeśli pacjent usunięto zdalną gałąź bezpośrednio przez interfejs WWW Githuba, na przykład.

Typowym sposobem na usunięcie tych przestarzałych gałęzi zdalnego śledzenia (od wersji 1.6.6 Git) jest po prostu uruchomienie git fetch z --prune lub krótsze -p. zauważ, że usuwa to wszystkie przestarzałe lokalne gałęzie zdalnego śledzenia dla wszystkich gałęzi zdalnych, które już nie istnieją na zdalnym :

git fetch origin --prune
git fetch origin -p # Shorter
[[34]} oto odpowiedni cytat z 1.6.6 release notes (moje podkreślenie):

"git fetch" --all i --multipleopcje, aby uruchomić fetch z wiele repozytoriów, a --prune możliwość usunięcia zdalnego śledzenia gałęzie, które były nieświeże. tworzą one "Git remote update" i " git Remote prune "mniej potrzebne (nie ma planu usunięcia" remote update " ani "remote prune").

Alternatywa dla powyższego automatycznego przycinania dla przestarzałych gałęzi zdalnego śledzenia

Alternatywnie, zamiast przycinać przestarzałe lokalne oddziały zdalnego śledzenia poprzez git fetch -p, można uniknąć dodatkowej operacji sieciowej, po prostu ręcznie usuwając gałąź(es) za pomocą flag --remote lub -r:

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

Zobacz Też

 1665
Author: Valentin Lorentz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-10 12:20:26

Kroki usuwania gałęzi:

Do usunięcia zdalnej gałęzi:

git push origin --delete <your_branch> 

Do usunięcia lokalnego oddziału , masz trzy sposoby:

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

Wyjaśnij: OK, po prostu wyjaśnij, co tu się dzieje!

Po prostu wykonaj git push origin --deletedo usuń tylko zdalną gałąź, Dodaj nazwę gałęzi na końcu, a to spowoduje usunięcie i przesunięcie jej do zdalnej w tym samym czasie...

Również, git branch -D, które po prostu usuwają lokalny oddział tylko !...

-D oznacza --delete --force, która usunie gałąź nawet, gdy nie jest scalona( Wymuś usunięcie), ale możesz również użyć -d, która oznacza --delete, która wyświetli błąd odpowiadający statusowi scalania gałęzi...

Tworzę również poniższy obrazek, aby pokazać kroki:

Usuń zdalną i lokalną gałąź w git

 946
Author: Alireza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-18 10:02:24

Możesz również użyć następujących opcji, aby usunąć zdalną gałąź.

git push --delete origin serverfix

Który robi to samo co

git push origin :serverfix
Ale może być łatwiej zapamiętać.
 709
Author: pagetribe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 18:57:03

Jeśli chcesz usunąć gałąź, najpierw sprawdź gałąź inną niż gałąź, która ma zostać usunięta.

git checkout other_than_branch_to_be_deleted

Usunięcie lokalnej gałęzi:

git branch -D branch_to_be_deleted

Usuwanie zdalnej gałęzi:

git push origin --delete branch_to_be_deleted
 346
Author: Praveen Hiremath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-09 02:04:02

Wskazówka: gdy usuniesz gałęzie za pomocą

git branch -d <branchname>    # deletes local branch

Lub

git push origin :<branchname> # deletes remote branch

Skreśla się tylko odniesienia. Nawet jeśli gałąź jest usuwana na zdalnym serwerze, odniesienia do niej nadal istnieją w lokalnych repozytoriach członków Twojego zespołu. Oznacza to, że dla innych członków zespołu usunięte gałęzie są nadal widoczne, gdy wykonują git branch -a.

Aby rozwiązać ten problem, członkowie zespołu mogą przycinać usunięte gałęzie za pomocą

git remote prune <repository>

Jest to typowo git remote prune origin.

 333
Author: pfrenssen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 18:58:06
git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>
 248
Author: Felipe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-08 20:04:03

To proste: wystarczy uruchomić następujące polecenie:

Aby usunąć gałąź Git zarówno lokalnie jak i zdalnie, najpierw usuń gałąź lokalną używając polecenia:

git branch -d example

(Tutaj example jest nazwa gałęzi)

A następnie usuń zdalną gałąź za pomocą polecenia:

git push origin :example
 213
Author: Syeful Islam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-09 02:03:14

Innym podejściem jest

git push --prune origin

Ostrzeżenie: spowoduje to usunięcie wszystkich zdalnych gałęzi, które nie istnieją lokalnie. lub bardziej kompleksowo,

git push --mirror

Sprawi, że zdalne repozytorium będzie wyglądało jak lokalna kopia repozytorium(lokalne głowice, piloty i znaczniki są dublowane na zdalnym).

 179
Author: imanuelcostigan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-10 01:11:11

Używam następujących ustawień Bash :

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

Wtedy możesz zadzwonić:

git-shoot branchname
 150
Author: crizCraig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-29 06:27:02

Od stycznia 2013, GitHub zawierał przycisk Usuń gałąź obok każdej gałęzi na stronie "gałęzie".

Odpowiedni wpis na blogu: Tworzenie i usuwanie gałęzi

 117
Author: Nacho Coloma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-27 02:43:06

Jeśli chcesz wykonać oba te kroki za pomocą jednego polecenia, możesz utworzyć dla niego alias, dodając poniżej do swojego ~/.gitconfig:

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

Alternatywnie możesz dodać to do globalnej konfiguracji z linii poleceń używając

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

Notatka : jeśli użyjesz -d (małe litery d), gałąź zostanie usunięta tylko wtedy, gdy została scalona. Aby wymusić usunięcie, musisz użyć -D (wielkie litery D).

 110
Author: Ryan Kohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-11 16:26:17

Aby usunąć swoją gałąź lokalnie i zdalnie

  • Checkout do master branch - git checkout master

  • Usuń zdalną gałąź - git push origin --delete <branch-name>

  • Usuń lokalny oddział - git branch --delete <branch-name>

 104
Author: mfathy00,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-13 22:10:51

Usuń lokalnie:

Aby usunąć lokalną gałąź, możesz użyć:

git branch -d branch_name 

Aby usunąć gałąź siłą, użyj -D zamiast -d.

git branch -D branch_name

Usuń zdalnie:

Są dwie opcje:

git push origin :branchname  

git push origin --delete branchname 

Sugerowałbym użycie drugiej drogi, ponieważ jest ona bardziej intuicyjna.

 101
Author: Rahul Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-07 10:36:53

Możesz to również zrobić używając git remote prune origin:

$ git remote prune origin
Pruning origin
URL: [email protected]/yourrepo.git
 * [pruned] origin/some-branchs

Ścina i usuwa gałęzie zdalnego śledzenia z listy git branch -r.

 95
Author: nickleefly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-29 06:26:26

Oprócz innych odpowiedzi, często używam narzędziagit_remote_branch . Jest to dodatkowa instalacja, ale zapewnia wygodny sposób interakcji ze zdalnymi oddziałami. W tym przypadku do usunięcia:

grb delete branch

Uważam, że dość często używam poleceń publish i track.

 93
Author: u2622,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-03 12:33:06

Usuwanie Gałęzi

Załóżmy, że nasza praca nad branchem "contact-form" została zakończona i już ją zintegrowaliśmy z"master". Ponieważ nie jest nam już potrzebny, możemy go usunąć (lokalnie):

$ git branch -d contact-form

I do usunięcia zdalnej gałęzi:

git push origin --delete contact-form
 84
Author: Ulysses Alves,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-18 19:51:13

One liner polecenie delete both local, and remote:

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

Lub dodaj poniższy alias do swojego ~/.gitconfig ; usage: git kill branch-name

[alias]
    kill = "!f(){ git branch -D \"$1\";  git push origin --delete \"$1\"; };f"
 83
Author: Vinnie James,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-15 08:30:43

Usuń zdalną gałąź

git push origin :<branchname>

Usuń lokalny oddział

git branch -D <branchname>

Usuń kroki lokalnej gałęzi:

  1. wymeldowanie do innego oddziału
  2. Usuń lokalny oddział
 81
Author: jayxhj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-19 18:05:46

Po Prostu powiedz:

git branch -d <branch-name>
git push origin :<branch-name>
 78
Author: piyushmandovra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 12:52:01

Teraz możesz to zrobić za pomocą aplikacji GitHub Desktop .

Po uruchomieniu aplikacji

  1. Kliknij na projekt zawierający gałąź
  2. Przełącz do gałęzi, którą chcesz usunąć oddział przełączający
  3. z menu" Branch "wybierz" Niepublikuj...", aby gałąź została usunięta z serwerów GitHub. oddział Niepubliczny
  4. z menu" Branch "wybierz" Delete " branch_name "...', aby gałąź została usunięta z lokalnej maszyny (aka maszyna, nad którą aktualnie pracujesz) Usuń lokalny oddział
 75
Author: Eric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-16 03:58:50

Do usunięcia lokalnie - (Normal),

git branch -d my_branch

Jeśli twoja gałąź w rebasingu / scalaniu i nie została wykonana poprawnie oznacza to, że pojawi się błąd Rebase/Merge in progress więc w takim przypadku nie będziesz mógł usunąć swojej gałęzi.

Więc albo musisz rozwiązać rebasing/scalanie, inaczej możesz wymusić usunięcie za pomocą

git branch -D my_branch

Aby usunąć w zdalnym:

git push --delete origin my_branch

Można zrobić to samo za pomocą,

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

Graficzne Reprezentacja,

Tutaj wpisz opis obrazka

 71
Author: Mohideen ibn Mohammed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-19 10:24:03
git push origin --delete branchName

Jest łatwiejsze do zapamiętania niż

git push origin :branchName
 66
Author: Smila,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-19 10:05:26

To nie zadziała, jeśli masz znacznik o tej samej nazwie co branch na zdalnym:

$ 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 '[email protected]:SomeName/some-repo.git'

W takim przypadku musisz określić, że chcesz usunąć gałąź, a nie tag:

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

Podobnie, aby usunąć tag zamiast gałęzi, której używasz:

git push origin :refs/tags/branch-or-tag-name
 59
Author: Amiramix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-20 11:30:52

Mam dość googlowania tej odpowiedzi, więc przyjęłam podobne podejście do odpowiedzi, którą crizCraig opublikował wcześniej.

Dodałem do mojego profilu Bash:

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

Potem za każdym razem, gdy kończę z gałęzią (na przykład scaloną do master) uruchamiam w moim terminalu:

gitdelete my-branch-name

...który następnie usuwa my-branch-name z origin jak również lokalnie.

 47
Author: arthurakay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:58

Wiele innych odpowiedzi doprowadzi do błędów/ostrzeżeń. Takie podejście jest stosunkowo niezawodne, chociaż nadal może być potrzebne git branch -D branch_to_delete, jeśli nie jest w pełni połączone z some_other_branch, na przykład.

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

Zdalne przycinanie nie jest potrzebne, jeśli usuniesz zdalną gałąź. Służy tylko do uzyskania najbardziej aktualnych pilotów dostępnych w repo, które śledzisz. Zauważyłem, że git fetch będzie dodawać piloty, a nie usuwać je. Oto przykład Kiedy git remote prune origin rzeczywiście coś zrobi:

Użytkownik A robi kroki wyżej. Użytkownik B uruchomi następujące polecenia, aby zobaczyć najbardziej aktualne zdalne gałęzie

git fetch
git remote prune origin
git branch -r
 46
Author: Brandon Cook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-27 03:04:55
git push origin :bugfix  # Deletes remote branch
git branch -d bugfix     # Must delete local branch manually

Jeśli jesteś pewien, że chcesz go usunąć, Uruchom

git branch -D bugfix

Teraz, Aby wyczyścić usunięte zdalne gałęzie Uruchom

git remote prune origin
 42
Author: Vivek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-21 16:49:36

Przed wykonaniem

git branch --delete <branch>

Upewnij się, że najpierw określisz dokładną nazwę zdalnej gałęzi, wykonując:

git ls-remote

To powie Ci, co dokładnie wprowadzić dla <branch> wartości. (branch rozróżnia wielkość liter!)

 42
Author: joey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-25 12:56:09

Mashup wszystkich innych odpowiedzi. Wymaga Ruby 1.9.3+, testowane tylko {[5] } na OS X.

Wywołaj ten plik git-remove, wykonywalny i umieść go w swojej ścieżce. Następnie użyj, na przykład, git remove temp.

#!/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
 40
Author: Dan Rosenstark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-30 18:34:01