Wie lösche ich origin / master in Git?

10

Ich kann nicht origin/mastervon meinem Server entfernen . Keine Ahnung warum.

Screenshot meines Terminals

Die Fehlermeldung lautet wie folgt

remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error: 
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error: 
remote: error: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:/export/home/a/elabshare/git/ID-check.git
 ! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:/export/home/a/elabshare/git/ID-check.git'

Nein, ich bin nicht mit Github .

Atcold
quelle
1
Warum willst du das tun? Gibt es noch andere Niederlassungen?
Daniel B
In der Tat gibt es noch andere Zweige (überprüfen Sie den Link zum Bild. Könnten Sie ihn mir bitte anzeigen?). Wir mussten neu gründen master, und wir haben es auf einem zeitlichen Zweig gemacht, der jetzt werden sollte master. Das einzige Problem ist, dass ich nicht weiß, warum ich den Master auf dem Server nicht töten kann.
Atcold
2
Vielleicht nicht die Antwort , die Sie suchen, aber man konnte die umbasiert zwangs Push masterzu origin/master, effektiv ersetzen die alte mit der neuen ein.
SlightlyCuban
Geben Sie zusätzlich zur Fehlermeldung den von Ihnen verwendeten Befehl ein.
Kyralessa
@Kyralessa, schau dir den Screenshot an.
Atcold

Antworten:

7

Unterhaltsame Tatsache: Sogar Remote-Repositorys befinden sich in einem Zweig. 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-Bare-Repor-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.

Wenn Sie einen Dienst wie Github oder Gitorious verwenden, müssen Sie die Benutzeroberfläche verwenden, die Ihnen das Tool zur Verfügung stellt, um die Änderung vorzunehmen (Informationen dazu finden Sie in dieser Antwort in gängigen Tools).

Etwas kubanisch
quelle
Awesome, es hat funktioniert und es gab mir die Chance, mehr über das Lernen refsin Git ! Vielen Dank! (Ja, ich wusste, wie man damit auf Github
umgeht
12

Anstatt den Master tatsächlich vom Server zu entfernen, können Sie ihn folgendermaßen ersetzen:

git push origin otherbranch:master -f

Dadurch wird der Master durch den Inhalt der anderen Branche ersetzt, auf der Fernbedienung wird er jedoch weiterhin als Master bezeichnet. Und dann können Sie Master als Master in Ihrem lokalen auschecken.

Kyralessa
quelle
OK danke! Ich weiß, dass ich Sachen erzwingen kann, aber ich habe mich genau gefragt, warum ich den masterZweig nicht entfernen konnte , und die akzeptierte Antwort erklärt, warum.
Atcold
1
+1. Dies war die einzige Möglichkeit, ein fehlerhaftes erstes Commit für Fernbedienungen / Ursprung / Master zu löschen.
ctn