2013-07-09 15 views
11

Ich weiß, dass dies bereits behandelt wurde, aber ich habe Folgendes versucht und kann nicht scheinen, die entfernte Niederlassung zu löschen.Wie lösche ich einen entfernten Zweig mit Git?

[email protected]:~/workspace/3DOD_VARIANCE$ git branch -a 
* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 
    remotes/origin/multi_gauss_at_nodes 
    remotes/origin/old-state-with-mean-deviation-from-centre 
    remotes/origin/variance-branch 


[email protected]:~/workspace/3DOD_VARIANCE$ git branch -r -d origin/old-state-with-mean-deviation-from-centre Deleted remote branch origin/old-state-with-mean-deviation-from-centre (was 0ed90b2). 


Fetching origin 
From https://bitbucket.org/alykhantejani/3dobjectdetection 
* [new branch]  old-state-with-mean-deviation-from-centre -> origin/old-state-with-mean-deviation-from-centre 

Wie Sie sehen können, wurde die Verzweigung erneut abgerufen. Irgendeine Idee, was ich falsch mache?

Auch als eine Nebenbemerkung, gibt es eine Möglichkeit für mich zu überprüfen, ob dieser Zweig bereits wieder in Master zusammengeführt wurde, bevor ich lösche?

+1

möglich Duplikat [Wie lösche ich ein Git Zweig sowohl lokal als auch in GitHub?] (Http://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-both-locally-and-in-github) – Livius

+0

@Livius Hallo Ja, ich habe zuerst auf diese Frage hingewiesen, aber ohne Glück – Aly

+0

"Kein Glück" ist kein hilfreicher Fehlerbericht. Auch warum gibt deine Frage nicht an, dass du die dort gegebene Lösung ausprobiert hast? – Chronial

Antwort

17

Der vollständige Push-Befehl die folgende

git push <remote name> <local branch>:<remote branch> 

versuchen wird Sende einfach "n o Zweig an alle“auf dem Remote-Server auf diese Weise:

git push origin :old-state-with-mean-deviation-from-centre 

Für die Bemerkung am Rande: git verhindert verzweigen Sie zu löschen, die verschmolzen wurde nicht, wenn Sie mit‚git branch -d‘(und sagt Ihnen, verwenden - D wenn Sie wirklich sicher sind, es trotzdem zu löschen).

Beachten Sie auch die git branch -d -r <branch name> die Verweise in Ihrem .git Ordner löschen (und nicht der wirkliche Zweig auf dem Remote-Server befindet), deshalb wird ein neues erstellen holen erneut es

+0

Danke, das hat das Problem gelöst. Bitte beachten Sie, dass der Herkunfts-/Qualifikationsmerkmal nicht für den Namen des entfernten Zweiges benötigt wird, da dies für mich fehlgeschlagen ist. – Aly

+1

Alles, was Sie mit dem Befehl "branch" tun können, betrifft Ihr lokales Repository, d. H. Den .git-Ordner. 'git branch -d -r origin/master' betrifft die Datei .git/refs/remotes/origin/master (die ein sha1 enthält) wird gelöscht, aber nicht die auf dem Server (weil keine Verzweigung den Namen" origin/Master ", der für einen Teil des Filialnamens steht." Wenn Sie 'git push: Herkunft/old-branch' eingeben, wird versucht, die Verzweigung" Herkunft/Alter-Zweig "(Ursprung als Namespace) zu entfernen, die nicht existiert. – Asenar

18

Um eine Remote-Zweig laufen folgende zu löschen:

git push origin :branch-to-delete 

Der Trick in Kolon ist

+0

eine Idee, wie Sie überprüfen, dass dieser Zweig in Master zusammengeführt wurde, bevor ich lösche? – Aly

+0

git branch - enthält diesen Zweig. Es wird eine Liste von Zweigen geben, die diesen Zweig enthalten. Wenn Ihr Zweig in der Liste ist, können Sie ihn löschen. – grafa

+0

Versuchte den obigen Befehl und erhalte Folgendes: nicht zum unqualifizierten Ziel drücken: Ursprung/Alter-mit-mittlerer Abweichung-von-Mitte Das Ziel refspec entspricht weder einem vorhandenen Ref auf der Fernbedienung, noch beginnt mit refs/ – Aly

2

git push origin :remote_branch_to_be_deleted 
Verwandte Themen