Próbuję usunąć zdalną gałąź git za pomocą
git push origin :my_remote_branch
i otrzymuję:
error: unable to push to unqualified destination: my_remote_branch
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to '[email protected]:/myrepo'
to są moje obecne gałęzie
git branch -a
* develop
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/my_remote_branch
git branch -r --merged
origin/HEAD -> origin/master
origin/develop
origin/master
Wszelkie pomysły, jak pozbyć się tej gałęzi będą mile widziane.
git fetch
sprawdzić, czy naprawił tę nieistniejącą zdalną nazwę? Czy próbowałeś wejść do swojego.git\refs\remotes\origin
i usunąćmy_remote_branch
plik, aby sprawdzić, czy to wystarczy?git fetch
, ale to nie pomogło. Spróbuje poszukać prostszego rozwiązania przed próbą ręcznego usunięcia pliku.git fetch -p
aby pozbyć się przestarzałych gałęzi śledzących.Odpowiedzi:
Fakt, że
refs/remotes/origin/my_remote_branch
istnieje w lokalnym repozytorium, nie oznacza, żerefs/heads/my_remote_branch
istnieje worigin
zdalnym repozytorium.Zrób,
git fetch -p origin
abyrefs/remotes/origin/my_remote_branch
odejść, jeśli jest już usunięty w źródle. Ta-p
opcja nakazuje funkcji pobierania, aby usunąć wszystkie gałęzie śledzenia, które już nie istnieją w odpowiednich pilotach; domyślnie są trzymane w pobliżu.źródło
git fetch -p origin
naprawiłem to dla mnie. Wielkie dzięki.git push origin --delete origin/feature/x
dał mi błąd o nieistnieniu, refgit push origin :feature/x
usunął gałąź. Więc myślę, żegit push origin --delete <branchName>
nie powinienem uwzględniać pochodzenia w branchName (?), Ale jest to zakończone bash, co jest mylące.git push origin --delete feature/x
, ponieważ podajesz nazwę gałęzi w miejscu pochodzenia i nie ma tam tego przedrostka (poza tym te dwie formy są synonimami).:
aby nie uwzględniać,origin
ale kończy,origin/branch_name
zamiast po prostu,branch_name
gdy używa się--delete
wariantu.Znaleziono pytanie dotyczące czyszczenia starych zdalnych gałęzi git i to załatwiło sprawę
źródło
git push origin :my_remote_branch
usuwa oddział ze zdalnego igit branch -r -d origin/my_remote_branch
usuwa go z mojej lokalnej listy zdalnych oddziałówNatknąłem się na to, próbując usunąć zdalną gałąź, która została już usunięta. Potrzebna była tylko śliwka:
źródło
Spróbuj zastosować dwie opcje, aby wymusić usunięcie zdalnego oddziału
opcja 1
Opcja 2
źródło
mi nie wystarczało. Zanim musiałem udać się na serwer i bezpośrednio pracować z katalogiem git (co jest niebezpieczne i brzydkie), aby usunąć gałąź:
źródło
git push origin :my_remote_branch
. Uważaj na okrężnicę.git push origin :my_remote_branch
to normalny sposób. Ten brzydki i niebezpieczny sposób jest wtedy, gdy to nie działa (np. Z powodu źle skonfigurowanego gita).Mam podobny problem. Najpierw poszedłem do tej dyskusji, jednak nie mogłem rozwiązać problemu, dopóki nie zobaczyłem https://stackoverflow.com/a/32147743/4209849 .
które po prostu dodają wskazówkę dotyczącą rozróżniania
origin/my-branch-name
imy-branch-name
.Aby być konkretnym, powinienem użyć:
zamiast
To przynajmniej rozwiązało mój problem, mam nadzieję, że pomoże to również innym.
źródło
Dla mnie problem polegał na tym, że to była moja domyślna gałąź na githubie. Zmieniłem domyślną gałąź, a następnie operacja usunięcia powiodła się.
Mam nadzieję, że to komuś pomoże
źródło
Mając ten sam problem, ręcznie zmodyfikowałem
./.git/config
plik, aby zawierał:Co zaowocowało:
error: src refspec branchName matches more than one.
Naprawiłem to, uruchamiając$git tag -d branchName
. Po czym mogłem wypchnąć nową gałąź na wyższy poziom.źródło
To zadziałało dla mnie: utworzyłem zdalną gałąź w interfejsie użytkownika github, a następnie wypchnąłem mój lokalny oddział, który miał tę samą nazwę. Wypróbuj, jeśli inne sposoby nie działają. Innym sposobem byłoby utworzenie nowej gałęzi lokalnie i wypchnięcie pustej gałęzi, a następnie wybranie najlepszego zatwierdzenia i ponowne wysłanie do pilota.
źródło