Ich möchte einen Zweig sowohl lokal als auch aus der Ferne löschen.
$ git branch -d remotes/origin/bugfix
Fehler: Zweig 'remotes/origin/bugfix' nicht gefunden.
$ git branch -d origin/bugfix
Fehler: Zweig 'origin/bugfix' nicht gefunden.
$ git branch -rd ursprung/bugfix
Der entfernte Zweig origin/bugfix wurde gelöscht (war 2a14ef7).
$ git push
Alles auf dem neuesten Stand
$ git pull
Von github.com:gituser/gitproject
* [neuer Zweig] bugfix -> origin/bugfix
Bereits aktuell.
Was sollte ich anders machen, um den
Zweig remotes/origin/bugfix
sowohl lokal als auch aus der Ferne zu löschen?
$ git push -d <remote_name> <branch_name>
$ git branch -d <branch_name>
Beachten Sie, dass in den meisten Fällen der entfernte Name origin
ist.
Um den lokalen Zweig zu löschen, verwenden Sie einen der folgenden Schritte:
$ git branch -d branch_name
$ git branch -D branch_name
Hinweis: Die Option -d
ist ein Alias für --delete
, das den Zweig nur dann löscht, wenn er bereits vollständig in seinem Upstream-Zweig zusammengeführt wurde. Sie könnten auch -D
verwenden, was ein Alias für --delete --force
ist, das den Zweig "unabhängig von seinem Zusammenführungsstatus" löscht. [Quelle: man git-branch
]
Seit Git v1.7.0 können Sie einen entfernten Zweig löschen, indem Sie
$ git push <remote_name> --delete <branch_name>
löschen, was vielleicht einfacher zu merken ist als
$ git push <remote_name> :<branch_name>
der in Git v1.5.0 hinzugefügt wurde, "um einen entfernten Zweig oder ein Tag zu löschen."
Ab [Git v2.8.0][git-2.8.0] können Sie auch git push
mit der Option -d
als Alias für --delete
verwenden.
Daher hängt es von der Version von Git ab, ob Sie die einfachere oder die schwierigere Syntax verwenden müssen.
Aus Kapitel 3 von Pro Git von Scott Chacon:
Löschen von entfernten Zweigen
Angenommen, Sie sind mit einem entfernten Zweig fertig - sagen wir, Sie und Ihre Mitarbeiter sind mit einem Feature fertig und haben es in den Master-Zweig Ihres entfernten Zweigs (oder in den Zweig, in dem sich Ihre stabile Code-Linie befindet) eingefügt. Sie können eine entfernte Verzweigung mit der eher schwer verständlichen Syntax
git push [remotename] :[branch]
löschen. Wenn Sie Ihren Server-Fix-Zweig vom Server löschen wollen, führen Sie folgendes aus:$ git push origin :serverfix An [email protected]:schacon/simplegit.git
- [gelöscht] serverfix
Bumm. Keine Zweige mehr auf Ihrem Server. Sie sollten sich diese Seite merken, denn Sie werden diesen Befehl brauchen, und Sie werden wahrscheinlich die Syntax vergessen. Eine Möglichkeit, sich an diesen Befehl zu erinnern, ist, sich an die Syntax von
git push [remotename] [localbranch]:[remotebranch]
zu erinnern, die wir vorhin besprochen haben. Wenn Sie den Teil[localbranch]
weglassen, dann sagen Sie im Grunde: "Nimm nichts auf meiner Seite und mache es zu[remotebranch]
."
Ich gab git push origin: bugfix
aus und es funktionierte wunderbar. Scott Chacon hatte Recht - ich werde diese Seite mit dem Eselsohr lesen wollen (oder praktisch mit dem Eselsohr, indem ich diese Frage auf Stack Overflow beantworte).
[git-2.8.0]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.8.0.txt
Dann sollten Sie dies auf anderen Rechnern ausführen
# Fetch changes from all remotes and locally delete
# remote deleted branches/tags etc
# --prune will do the job :-;
git fetch --all --prune
ausführen, um die Änderungen zu verbreiten.
Sie können auch wie folgt vorgehen, um den entfernten Zweig zu löschen
git push --delete origin serverfix
Dies bewirkt dasselbe wie
git push origin :serverfix
aber es ist vielleicht leichter zu merken.
Zusätzlich zu den anderen Antworten, verwende ich oft das git_remote_branch Werkzeug. Es ist eine zusätzliche Installation, aber es bietet eine bequeme Möglichkeit, mit entfernten Zweigen zu arbeiten. In diesem Fall, um zu löschen:
grb delete branch
Ich habe festgestellt, dass ich auch die Befehle publish
und track
ziemlich oft verwende