Jak usunąć gałąź Git lokalnie i zdalnie?

Chcę usunąć gałąź zarówno lokalnie, jak i zdalnie.

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 zrobić inaczej, aby pomyślnie usunąć gałąź remotes/origin/bugfix zarówno lokalnie, jak i zdalnie?

Author: Matthew Rankin, 2010-01-05

30 answers

Streszczenie

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

Zauważ, że w większości przypadków zdalna nazwa to origin. W takim przypadku będziesz musiał użyć polecenia w ten sposób.

$ git push -d origin <branch_name>

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

Notatka: opcja -d jest aliasem dla --delete, który usuwa gałąź tylko wtedy, gdy została już w pełni scalona w jej gałęzi. Można 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]
Zauważ również, że git branch -d branch_name nie powiedzie się, jeśli aktualnie w gałęzi, którą chcesz usunąć. Wiadomość zaczyna się od error: Cannot delete the branch 'branch_name'. Jeśli tak, pierwsza zmiana do innej gałęzi, na przykład: git checkout master.

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, którą zainstalowałeś, będzie określać, czy musisz używać łatwiejszej czy 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ą zdalnego sterowania (lub jakąkolwiek gałęzią jest twoja stabilna linia kodu). Możesz usunąć zdalną gałąź używając dość rozwartej składni git push [remotename] :[branch]. Jeśli chcesz usunąć gałąź server-fix z serwera, uruchom następujące polecenie:

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

Bum. Koniec z gałęziami na twoim serwerze. Ty może chcesz 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: "Nie bierz nic na moją stronę i spraw, by było [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 Przepełnienie Stosu).

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

# Fetch changes from all remotes and locally delete 
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune

Aby propagować zmiany.

 22238
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
2020-12-05 14:44:15

Odpowiedź Mateusza jest świetna do usuwaniazdalnych 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: Git: Delete a oddział (lokalny lub zdalny)

 3416
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
2020-04-11 11:08:11

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 -d <branch>        # Shorter version (Git 1.7.0 or newer)
git push origin :<branch>          # Git versions older than 1.7.0

Usuwanie 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 remote-tracking branches
git fetch <remote> -p      # Shorter

długa odpowiedź : istnieją trzy różne gałęzie do usunięcia!

Gdy masz do czynienia z usuwaniem gałęzi zarówno lokalnie, jak i zdalnie, zachowaj należy pamiętać, że istnieją trzy różne gałęzie zaangażowane :

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

Wizualizacja trzech gałęzi

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

Na usuń tę rzeczywistą zdalną gałąź, 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.

Naciskanie, aby usunąć zdalne gałęzie, również usuwa gałęzie zdalnego śledzenia

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

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 linii poleceń (jak powyżej), Twoje lokalne repozytorium nadal będzie zawierało (przestarzałe) zdalne śledzenie branch origin/X. Może się to zdarzyć, jeśli usuniesz zdalną gałąź bezpośrednio przez interfejs WWW GitHub, 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. Należy pamiętać, że usuwa to wszystkie przestarzałe lokalne gałęzie zdalnego śledzenia dla wszelkich gałęzi zdalnych, które już nie istnieją na zdalnym: {]}

git fetch origin --prune
git fetch origin -p # Shorter

Oto odpowiedni cytat z wydania 1.6.6 uwagi (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łego zdalnego śledzenia gałęzie

Alternatywnie, zamiast przycinać przestarzałe lokalne gałęzie zdalnego śledzenia przez 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ż

 2138
Author: Peter Mortensen,
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
2020-04-11 11:22:52

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 --delete aby usuń tylko zdalną gałąź , Dodaj nazwę gałęzi na końcu, a to usunie i przesunie ją do remote 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ż obrazek poniżej , aby pokazać kroki:

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

 1579
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
2020-04-11 11:59:19

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ć.
 823
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
2018-12-13 04:44:17

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. Mimo że gałąź jest faktycznie 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 to rozwiązać, członkowie Twojego zespołu mogą przycinać usunięte gałęzie za pomocą

git remote prune <repository>

Jest to typowo git remote prune origin.

 384
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
2020-04-11 11:09:16

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
 372
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
git branch -D <name-of-branch>
git branch -D -r origin/<name-of-branch>
git push origin :<name-of-branch>
 270
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 bardzo proste:

Aby usunąć zdalną gałąź

git push -d origin <branch-name>

lub

git push origin :<branch-name>

Aby skutecznie usunąć lokalny oddział

git branch -D <branch-name>

Happy Coding:)

 263
Author: Vivek Maru,
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
2020-12-16 09:05:17

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 tego polecenia:

git branch -d example

(Tutaj example jest nazwa gałęzi.)

A następnie usuń zdalną gałąź używając tego polecenia:

git push origin :example
 231
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
2020-04-11 11:25:30

Inne podejście to:

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

 207
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
2020-04-11 11:09:44

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

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

Wtedy możesz zadzwonić:

git-shoot branchname
 174
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
2018-12-13 04:43:53

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 drugiego sposobu, ponieważ jest on bardziej intuicyjny.

 138
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
2020-04-11 11:26:25

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

 135
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
2018-12-13 04:42:21

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 swojej 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).

 135
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
2020-04-11 11:10:56

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>

 120
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

Można to również zrobić za pomocą 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.

 117
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
2018-12-13 04:43:19

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.

 112
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
2020-04-11 11:07:18

A Jednowierszowe polecenie do usuwania zarówno lokalnego, jak i zdalnego:

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

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

[alias]
    kill = "!f(){ git branch -D \"$1\";  git push origin --delete \"$1\"; };f"
 104
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
2020-04-11 11:45:43

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
 98
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
2020-06-20 09:12:55

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ł
 91
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>
 90
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
git push origin --delete <branch Name>

Jest łatwiejsze do zapamiętania niż

git push origin :branchName
 87
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
2018-12-13 04:44:45

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 opcję" Wycofaj publikację...", aby gałąź została usunięta z serwerów GitHub.

    Oddział Niepubliczny

  4. Z menu "Branch" wybierz, ' Usuń "branch_name "...', aby usunąć gałąź z lokalnej maszyny (aka maszyny, na której aktualnie pracujesz)

    Usuń lokalny oddział

 85
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
2020-04-11 11:28:07

Aby usunąć lokalnie - (normal)

git branch -d my_branch

Jeśli twoja gałąź jest w trakcie zmiany/scalania 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. W przeciwnym razie możesz wymusić delete używając,

git branch -D my_branch

Aby usunąć w remote:

git push --delete origin my_branch

Możesz zrobić to samo użycie:

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

Reprezentacja graficzna:

Tutaj wpisz opis obrazka

 84
Author: Mohideen bin 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
2020-04-11 11:58:09

to nie zadziała, jeśli masz znacznik o tej samej nazwie co gałąź 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
 73
Author: Greg,
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-12-13 04:43:05

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 śledzonym repozytorium. 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 powyższe kroki. Użytkownik B uruchomiłby następujące polecenia, aby zobaczyć najbardziej aktualne zdalne gałęzie:

git fetch
git remote prune origin
git branch -r
 57
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
2020-04-11 11:18:51

Miałem dość googlowania tej odpowiedzi, więc zastosowałem 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.

 55
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
2020-04-11 11:32:02

Przed wykonaniem

git branch --delete <branch>

Upewnij się, że najpierw określisz, jaka jest dokładna nazwa zdalnej gałęzi wykonując:

git ls-remote

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

 53
Author: jbooker,
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
2020-04-11 11:37:26

Użycie:

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
 52
Author: user,
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
2020-04-11 11:32:55