Pobiegłem git branch -a
* master
remotes/origin/test
remotes/origin/master
Chcę usunąć moją zdalną gałąź
próbowałem
git push origin --delete remotes/origin/test
mam
błąd: nie można usunąć „zdalne / pochodzenie / test”: zdalny numer referencyjny nie istnieje
Jak to nie istnieje?
Zrobiłem git branch -a
i widziałem to na liście.
Czy coś przegapiłem ?
git branch -a
wyświetli listę oddziałów w Twoim lokalnym, a nie zdalnym. Dobrze?Odpowiedzi:
Polecenie
git branch -a
wyświetla zdalne gałęzie, które istnieją w lokalnym repozytorium . Może to zabrzmieć trochę zagmatwane, ale aby to zrozumieć, musisz zrozumieć, że istnieje różnica między zdalną gałęzią a gałęzią istniejącą w zdalnym repozytorium. Oddziały zdalne są lokalne które są mapowane na gałęzie zdalnego repozytorium. Zatem zestaw zdalnych gałęzi reprezentuje stan zdalnego repozytorium.Zwykłym sposobem aktualizowania listy zdalnych oddziałów jest użycie
git fetch
. To automatycznie pobiera zaktualizowaną listę oddziałów ze zdalnego i konfiguruje zdalne gałęzie w lokalnym repozytorium, a także pobiera wszelkie obiekty zatwierdzenia, których możesz brakować.Jednak domyślnie
git fetch
nie usuwa gałęzi zdalnych, które nie mają już gałęzi odpowiednika na zdalnym. Aby to zrobić, musisz jawnie skrócić listę zdalnych oddziałów:Spowoduje to automatyczne usunięcie zdalnych gałęzi, które już nie istnieją na pilocie. Następnie
git branch -r
wyświetli zaktualizowaną listę oddziałów, które naprawdę istnieją na pilocie: I te, które możesz usunąć za pomocągit push
.Biorąc to pod uwagę, aby użyć
git push --delete
, musisz określić nazwę oddziału w zdalnym repozytorium; nie nazwa twojego zdalnego oddziału. Aby usunąć gałąźtest
(reprezentowaną przez twoją zdalną gałąźorigin/test
), użyjgit push origin --delete test
.źródło
git branch -r | grep "origin"
Pomoże również przy dużych projektach wykorzystujących widelecremotes/origin/
. Lub oba.Znaczenie
remotes/origin/test
jest takie, że masz gałąź wywołanątest
na serwerze zdalnymorigin
. Więc polecenie byłobyźródło
Istnieje skrót do usunięcia gałęzi w źródle:
git push origin :<branch_name>
Co jest tym samym, co robienie
git push origin --delete <branch_name>
źródło
źródło
git push origin --delete yourBranch
źródło
Biorąc pod uwagę, że zdalna gałąź to zdalne / pochodzenie / test, możesz użyć dwóch sposobów:
i
źródło
Poszedłem za rozwiązaniem przez szturchnięcie z niewielką korektą na końcu. Moje kroki następują
-
git fetch --prune
;-
git branch -a
drukowanie następującychmaster
branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/branch
(zdalna gałąź do usunięcia)-
git push origin --delete branch
.Tutaj gałąź do usunięcia nie jest nazwana jako,
remotes/origin/branch
ale po prostubranch
. A gałąź jest usuwana.źródło
origin/branch
kiedy powinnobranch
.git branch -a
wyświetli listę oddziałów w twoim lokalnym, a nie oddziałów w twoim pilocie.A błąd
error: unable to delete 'remotes/origin/test': remote ref does not exist
oznacza, że nie masz oddziału o tej nazwie na swoim pilocie, ale oddział istnieje w twoim lokalnym.źródło
Poręczna jedna linijka do usuwania gałęzi innych niż `` główne '' z pochodzenia:
Zanim to zrobisz, upewnij się, że rozumiesz konsekwencje uruchomienia tego!
źródło
Dla mnie to zadziałało $ ▶ git branch -D -r origin / mybranch
Detale
$ ▶ git branch -a | grep mybranch piloty / pochodzenie / mybranch
$ ▶ git branch -r | grep mybranch origin / mybranch
$ ▶ git branch develop * feature / pre-deployment
$ ▶ git push origin --delete mybranch błąd: nie można usunąć 'mybranch': zdalny odnośnik nie istnieje błąd: nie udało się przesłać niektórych odnośników do '[email protected]: config / myrepo.git'
$ ▶ git branch -D -r origin / mybranch Usunięto zdalny oddział / mybranch (poprzednio 62c7421).
$ ▶ git branch -a | grep mybranch
$ ▶ git branch -r | grep mybranch
źródło
powinno również działać
źródło