Ich rannte git branch -a
* master
remotes/origin/test
remotes/origin/master
Ich möchte meinen Remote-Zweig löschen
ich habe es versucht
git push origin --delete remotes/origin/test
ich habe
Fehler: 'Fernbedienungen / Ursprung / Test' kann nicht gelöscht werden: Remote-Referenz existiert nicht
Wie ist es nicht vorhanden?
Ich habe eine gemacht git branch -a
und ich habe sie aufgelistet gesehen.
Habe ich etwas vergessen ?
git branch -a
listet die Filialen in Ihrer Region und nicht von Ihrer Fernbedienung auf. Richtig?Antworten:
Der Befehl
git branch -a
zeigt entfernte Zweige an, die in Ihrem lokalen Repository vorhanden sind . Dies mag etwas verwirrend klingen, aber um es zu verstehen, müssen Sie verstehen, dass es einen Unterschied zwischen einem Remote-Zweig und einem Zweig gibt, der in einem Remote-Repository vorhanden ist. Remote-Zweige sind lokale Zweige, die Zweigen des Remote-Repositorys zugeordnet sind. Die Gruppe der Remote-Zweige repräsentiert also den Status des Remote-Repositorys.Die übliche Methode zum Aktualisieren der Liste der Remote-Zweige ist die Verwendung
git fetch
. Dadurch wird automatisch eine aktualisierte Liste der Zweige von der Fernbedienung abgerufen und Fernzweige im lokalen Repository eingerichtet. Außerdem werden alle fehlenden Festschreibungsobjekte abgerufen.Entfernt
git fetch
jedoch standardmäßig keine Remote-Zweige, die keinen Gegenzweig mehr auf der Remote haben. Dazu müssen Sie die Liste der Remote-Zweige explizit beschneiden :Dadurch werden Remote-Zweige, die auf der Remote nicht mehr vorhanden sind, automatisch entfernt. Anschließend
git branch -r
wird Ihnen eine aktualisierte Liste der Zweige angezeigt, die tatsächlich auf der Fernbedienung vorhanden sind: Und diejenigen, mit denen Sie löschen könnengit push
.Abgesehen davon müssen Sie zur Verwendung
git push --delete
den Namen des Zweigs im Remote-Repository angeben. nicht der Name Ihrer Gegenstelle. Um den Zweigtest
(dargestellt durch Ihren Remote-Zweigorigin/test
) zu löschen , würden Sie verwendengit push origin --delete test
.quelle
git branch -r | grep "origin"
wird bei großen Projekten helfen, die Gabel verwendenremotes/origin/
. Oder beides.Die Bedeutung von
remotes/origin/test
ist, dass Sie einen Zweigtest
auf dem Remote-Server habenorigin
. Der Befehl wäre alsoquelle
Es gibt eine Verknüpfung zum Löschen des Zweigs im Ursprung:
git push origin :<branch_name>
Welches ist das gleiche wie zu tun
git push origin --delete <branch_name>
quelle
quelle
git push origin --delete yourBranch
quelle
Da der Remote-Zweig Fernbedienungen / Ursprung / Test ist, können Sie zwei Möglichkeiten verwenden:
und
quelle
Ich folgte der Lösung durch Stoßen mit einer geringfügigen Anpassung am Ende. Meine Schritte folgen
-
git fetch --prune
;-
git branch -a
Folgendes druckenmaster
branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/branch
(Remote-Zweig zum Entfernen)-
git push origin --delete branch
.Hier wird der zu entfernende Zweig nicht als,
remotes/origin/branch
sondern einfach benanntbranch
. Und der Zweig wird entfernt.quelle
origin/branch
wenn er nur sein solltebranch
.git branch -a
listet die Zweige in Ihrem lokalen und nicht die Zweige in Ihrer Fernbedienung auf.Und der Fehler
error: unable to delete 'remotes/origin/test': remote ref does not exist
bedeutet, dass Sie in Ihrer Fernbedienung keinen Zweig mit diesem Namen haben, der Zweig jedoch in Ihrem lokalen Zweig vorhanden ist.quelle
Ein praktischer Einzeiler zum Löschen anderer Zweige als "Master" vom Ursprung:
Stellen Sie sicher, dass Sie die Auswirkungen dieser Ausführung verstehen, bevor Sie dies tun!
quelle
Bei mir hat das funktioniert $ ▶ git branch -D -r origin / mybranch
Einzelheiten
$ ▶ git branch -a | grep mybranch fernbedienungen / herkunft / mybranch
$ ▶ git branch -r | grep mybranch origin / mybranch
$ ▶ Git Branch Development * Feature / Pre-Deployment
$ ▶ git push origin - mybranch-Fehler löschen: 'mybranch' kann nicht gelöscht werden: Remote-Ref existiert nicht Fehler: Einige Refs konnten nicht an '[email protected]: config / myrepo.git' gesendet werden.
$ ▶ git branch -D -r origin / mybranch Gelöschter remote branch origin / mybranch (war 62c7421).
$ ▶ git branch -a | grep mybranch
$ ▶ git branch -r | grep mybranch
quelle
sollte auch funktionieren
quelle