Ich kann einen Remote-Master-Zweig auf Git nicht löschen

76

Ich muss einen Hauptzweig löschen, aber es erweist sich als schwierig. Ich möchte nur diesen Zweig bereinigen und neu anfangen. Ich lösche aus dem Dev-Zweig. Ich möchte, dass der Master auf GitHub sauber ist.

 # git push origin --delete master

> To https://github.com/mymasterb.git  ! [remote rejected] master
> (deletion of the current branch prohibited) error: failed to push some
> refs to 'https://github.com/mymaster.git'

Wie fange ich meinen Meister ganz einfach mit einer frischen Tafel an?

Tampa
quelle
Was meinst du mit "frischem Schiefer"? Sie möchten, dass Ihr Hauptzweig vollständig leer ist, aber Sie möchten, dass alle anderen Zweige noch vorhanden sind?
Jon Lin
Mögliches Cross-Site-Duplikat von: superuser.com/questions/294407/cant-remove-remote-branch-in-git
Ciro Santilli 1 冠状 病 六四 事件 法轮功
möglich Duplikat Wie kann ich ein Git Fern HEAD Punkt etwas anderes als „Master“ ändern . Duplizieren, da es deletion of the current branch prohibitedoffensichtlich ist, dass der aktuelle Zweig geändert werden muss, was in der akzeptierten Antwort erklärt wird. Genau das wird auf dem vorgeschlagenen Duplikat erklärt, einschließlich der Github-Lösung aufgrund des Tags.
Ciro Santilli 法轮功 冠状 病 六四 事件 2

Antworten:

130

Wie unter " Löschen Ihres Hauptzweigs " von Matthew Brett erläutert , müssen Sie Ihren GitHub-Repo-Standardzweig ändern .

Sie müssen zur GitHub-Seite für Ihr gespaltenes Repository gehen und auf die Schaltfläche "Einstellungen" klicken.

Klicken Sie auf der linken Seite auf die Registerkarte "Zweige". Oben auf dem Bildschirm befindet sich eine Dropdown-Liste "Standardzweig".

Wählen Sie dort Platzhalter aus (wobei Platzhalter der Dummy-Name für Ihren neuen Standardzweig ist).

Bestätigen Sie, dass Sie Ihren Standardzweig ändern möchten.

Jetzt können Sie (über die Befehlszeile) Folgendes tun:

git push origin :master

Oder Sie können seit 2012 denselben Zweig direkt auf GitHub löschen :

GitHub-Löschung

Dies wurde im September 2013 angekündigt , ein Jahr nachdem ich diese Antwort ursprünglich geschrieben hatte.

Bei kleinen Änderungen wie Dokumentationskorrekturen, Tippfehlern oder wenn Sie nur ein wandelnder Software-Compiler sind, können Sie in Ihrem Browser viel erledigen, ohne das gesamte Repository auf Ihren Computer klonen zu müssen .


Hinweis: für BitBucket, Tum berichtet in den Kommentaren :

Ungefähr das gleiche für Bitbucket

Repo -> Settings -> Repository details -> Main branch
VonC
quelle
Hinweis: "Platzhalter" ist ein Beispiel für einen anderen Zweig als Master. Die Idee ist, einen anderen Zweig als Github-Repo-Standardzweig zu definieren .
VonC
@Tampa Ich habe meine Antwort bearbeitet, um die Tatsache widerzuspiegeln, dass kein grünes Häkchen mehr vorhanden ist.
VonC
2
@ alpha_989 Um in einem Bare-Repo den Standardzweig zu ändern, setzen Sie den Symbol-Ref: stackoverflow.com/a/3302018/6309
VonC
2
Vielen Dank! Ungefähr das gleiche für Bitbucket. Repo -> Einstellungen -> Repository-Details -> Hauptzweig
Tum
2
@Tum Danke. Ich habe Ihren Kommentar zur besseren Sichtbarkeit in die Antwort aufgenommen.
VonC
7

Um die Frage wörtlich zu beantworten (da GitHub nicht im Fragentitel enthalten ist), beachten Sie auch diesen Beitrag über Superuser. BEARBEITEN: Antwort hier im relevanten Teil kopiert, zur Verdeutlichung in eckigen Klammern leicht modifiziert:

Sie werden abgelehnt, weil Sie versuchen, den Zweig zu löschen, den Ihr Ursprung derzeit "ausgecheckt" hat.

Wenn Sie direkten Zugriff auf das Repo haben, können Sie einfach ein Shell-Verzeichnis [im Bare-Repo-Verzeichnis] ​​öffnen und mit good old git branchsehen, auf welchem ​​Zweigursprung sich derzeit befindet. Um es in einen anderen Zweig zu ändern, müssen Sie verwenden git symbolic-ref HEAD refs/heads/another-branch.

dave_k_smith
quelle
Wären Sie offen dafür, dies als Kommentar als Antwort zu veröffentlichen? Der Link zum Superuser ist nett.
Zedfoxus
1
@zedfoxus, ich bin bereit darüber nachzudenken - aber das Feld zum Hinzufügen von Kommentaren unter dem Hauptbeitrag lautet "Vermeiden Sie die Beantwortung von Fragen in Kommentaren." Ich denke, meine ist eine Antwort auf die wörtliche Frage. Aber vielleicht fehlt mir dein Blickwinkel?
dave_k_smith
2
Ich dachte, wenn dies ein Kommentar wäre, würden einige der Links unter Kommentaren zusammen bleiben, während Erklärungen als Antwort bleiben würden. Aber es ist dein Gedanke, der zählt. Ich bin auch mit Ihrem Denkprozess einverstanden, dass dies als Antwort bleiben kann.
Zedfoxus
2
Dies sollte die akzeptierte Antwort sein. Vielleicht, @dave_k_smith, wären Sie bereit, Ihre Antwort tatsächlich mit den Informationen des Beitrags über Superuser zu erweitern?
AkiraAiren
1
Interessant und allgemeiner als meine "github-orientierte" Antwort. Upvoted.
VonC
4

Am schnellsten können Sie den Standardzweig vom Master zum anderen wechseln und den Master-Zweig von der Weboberfläche entfernen .

Jackkobec
quelle