Ich versuche einen Remote-Git-Zweig mit zu löschen
git push origin :my_remote_branch
und bekommen:
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'
Das sind meine aktuellen Filialen
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
Alle Ideen, wie ich diesen Zweig loswerden kann, wären willkommen.
git fetch
, festzustellen, ob dieser nicht vorhandene Remote-Name behoben wurde? Haben Sie versucht,.git\refs\remotes\origin
diemy_remote_branch
Datei zu löschen , um festzustellen, ob dies ausreicht?git fetch
aber das half nicht. Versucht, nach einer einfacheren Lösung zu suchen, bevor Sie versuchen, die Datei manuell zu löschen.git fetch -p
, um veraltete Tracking-Zweige loszuwerden.Antworten:
Die Tatsache, dass
refs/remotes/origin/my_remote_branch
in Ihrem lokalen Repository vorhanden ist, bedeutet nicht, dassrefs/heads/my_remote_branch
es imorigin
Remote-Repository vorhanden ist.Tun
git fetch -p origin
machenrefs/remotes/origin/my_remote_branch
weggehen , wenn es bereits im Ursprung gelöscht wird . Die-p
Option weist fetch an, alle Tracking-Zweige zu löschen, die in den entsprechenden Fernbedienungen nicht mehr vorhanden sind. Standardmäßig werden sie beibehalten.quelle
git fetch -p origin
habe es für mich behoben. Vielen Dank.git push origin --delete origin/feature/x
gab mir Fehler über Nichtexistenz refgit push origin :feature/x
löschte den Zweig. Ich denke also, ichgit push origin --delete <branchName>
sollte den Ursprung nicht in den branchName (?) Einschließen, aber es ist Bash-abgeschlossen, was verwirrend ist.git push origin --delete feature/x
, da Sie den Namen des Zweigs am Ursprung angeben und er dort kein Präfix hat (die beiden Formen sind ansonsten sowieso synonym).:
um nicht einzuschließen,origin
aber es wird abgeschlossen,origin/branch_name
anstatt einfach,branch_name
wenn die--delete
Variante verwendet wird.Es wurde eine Frage gefunden, mit der alte Remote-Git-Zweige aufgeräumt wurden, und dies hat den Trick getan
quelle
git push origin :my_remote_branch
löscht genau den Zweig von der Fernbedienung undgit branch -r -d origin/my_remote_branch
entfernt ihn von meiner lokalen Liste der entfernten ZweigeIch bin darauf gestoßen, als ich versucht habe, einen Remote-Zweig zu löschen, der bereits gelöscht wurde. Alles was benötigt wurde war eine Pflaume:
quelle
Versuchen Sie, zwei Optionen zu befolgen, um den Remote-Zweig zwangsweise zu löschen
Option 1
Option 2
quelle
war nicht genug für mich. Bevor ich zum Server gehen und direkt mit dem Git-Verzeichnis arbeiten musste (was gefährlich und hässlich ist), um den Zweig zu entfernen:
quelle
git push origin :my_remote_branch
. Kümmere dich um den Doppelpunkt.git push origin :my_remote_branch
ist normal. Dieser hässliche und gefährliche Weg ist, wenn dies nicht funktioniert (z. B. aufgrund eines falsch konfigurierten Git).Ich habe das ähnliche Problem. Ich ging zuerst zu dieser Diskussion, konnte das Problem jedoch erst lösen, als ich https://stackoverflow.com/a/32147743/4209849 sah .
die einfach einen Tipp zur Unterscheidung hinzufügen
origin/my-branch-name
undmy-branch-name
.Um genau zu sein, sollte ich verwenden:
anstatt
Dies löste zumindest mein Problem, hoffe es würde auch anderen helfen.
quelle
Für mich war das Problem, dass dies mein Standardzweig auf Github war. Ich habe den Standardzweig geändert, dann war der Löschvorgang erfolgreich.
Hoffe es hilft jemandem
quelle
Hatte das gleiche Problem, habe ich meine
./.git/config
Datei manuell so bearbeitet, dass sie Folgendes enthält:Was dazu führte:
error: src refspec branchName matches more than one.
Dies habe ich durch Laufen behoben$git tag -d branchName
. Danach konnte ich den neuen Zweig nach oben schieben.quelle
Das hat bei mir funktioniert: Ich habe den Remote-Zweig auf der Github-Benutzeroberfläche erstellt und dann meinen lokalen Zweig mit demselben Namen verschoben. Versuchen Sie es für den Fall, dass andere Möglichkeiten nicht funktionieren. Eine andere Möglichkeit wäre, lokal einen neuen Zweig zu erstellen und einen leeren Zweig zu verschieben und später Ihr Commit auszuwählen und erneut auf Ihre Fernbedienung zu übertragen.
quelle