Wir möchten eine neue Richtlinie für unsere Projekte durchsetzen, wonach der Hauptzweig jetzt als Release-Zweig bezeichnet wird, um sicherzustellen, dass klarer ist, wie der Zweig verwendet werden soll. Natürlich werden wir auch Kandidatenzweige entwickeln und freigeben.
Ich verstehe, dass ich den Hauptzweig lokal umbenennen kann, indem ich einfach Folgendes verwende:
git branch -m master release
Dies ist jedoch nur lokal. Selbst wenn ich dies auf die Fernbedienung schiebe, zeigt der HEAD immer noch auf den Remote-Master-Zweig. Ich möchte den Hauptzweig vollständig entfernen und den lokalen Standardzweig beim ersten Klonen freigeben.
Wie kann ich das erreichen?
Da der Ursprung auf einem Gitorious- Server liegt, erhalte ich anscheinend Fehler beim Löschen des Hauptzweigs. Ich versuche jetzt zu sehen, ob es möglich ist, dies so zu ändern, dass der Standardzweig "Release" ist.
quelle
git branch
unterstützt jetzt ein--move
Flag git-scm.com/docs/git-branch#Documentation/git-branch.txt---moveAntworten:
Bitte beachten Sie , wenn Sie mit GitHub sind Sie in der ersten Änderung benötigen eine „default“ Zweig auf GitHub nach Schritt 3:
Gehen Sie in Ihrem Repository auf github.com zu Einstellungen → Zweige → Standardzweig . Ändern Sie es in " Freigeben" und führen Sie dann den Rest der Schritte aus.
quelle
! [remote rejected] branch (deletion of the current branch prohibited)
wird mit Bitbucket passieren. Schalten Sie das "Haupt-Repository" im Einstellungsbildschirm (unter dem Zahnradsymbol).Überprüfen Sie Ihre Hauptniederlassung
Erstellen Sie Ihren Release-Zweig und wechseln Sie zu diesem:
Schieben Sie das auf den Server
Löschen Sie die Hauptzweigreferenz auf dem Server
Löschen Sie den lokalen Hauptzweig
quelle
Hinweis: Diese Antwort ist für selbst gehostete Git-Server gedacht, auf die Sie über Befehlszeilenzugriff verfügen.
Da der Versuch, das
remote master
von einem Client zu löschen, in der Tat nicht zulässig ist und ich davon ausgehe,denyDeleteCurrent
dass ein Verbot sinnvoll ist, möchte ich diese Einstellung nicht ändern.Ich habe jedoch festgestellt, dass der einfachste Weg, Ihren Master umzubenennen, wenn Sie Befehlszeilenzugriff auf den Remote-Server haben, darin besteht, den Befehl zum Umbenennen direkt auf dem Remote-Server auszuführen.
Das hat bei mir funktioniert:
git branch -m master release
Jetzt verwendet das Remote-Repository
release
als Standardzweig, und jedergit clone
in diesem Repository von einem Client aus überprüft standardmäßig den Release-Zweig.Dies ist auch nach dem Einrichten eines Bare-Repositorys sehr hilfreich, um es an Ihre Bedürfnisse anzupassen.
quelle
Wie bereits von anderen erwähnt, handelt es sich hier um ein Problem, bei dem Sie den HEAD-Zweig standardmäßig nicht löschen können. Sie haben zwei Möglichkeiten, um dieses Problem zu umgehen. Eine besteht darin, sich beim Gitorious-Server (mit ssh) anzumelden, das Git-Repository auf dem Dateiserver zu suchen und Folgendes hinzuzufügen:
zur Konfiguration.
Eine einfachere Option besteht darin, nur den Standardzweig zu ändern. Gehen Sie zu Ihrem Repository in der Gitorious-Weboberfläche, drücken Sie auf "Repository bearbeiten" und setzen Sie "Kopf Ändern Sie die symbolische Referenz, auf die der HEAD im Git-Repository zeigt:". Nachdem Sie dies getan haben, können Sie den Hauptzweig löschen.
quelle
Wenn Sie mit GitHub auf dieses Problem stoßen , führen Sie die Schritte bis zum Löschen des Zweigs auf Remote aus. Das lässt es dich nicht tun. Melden Sie sich dann bei der Weboberfläche an und gehen Sie im Repository zu Einstellungen → Zweige → Standardzweig . Ändern Sie es in den neuen Zweig und führen Sie die restlichen Schritte aus.
quelle
Idealerweise möchten Sie das Tracking einrichten. Gehen Sie folgendermaßen vor:
Möchten Sie nun die anderen löschen?
Einfach!
quelle
Da Sie mit dem Umbenennen der Zweige fertig sind, setzen Sie den HEAD auf
release
für RemoteUm dann einen
master
Zweig in Remote zu löschen , müssten Sie der Administrator sein, zumindest auf GitHub. Weitere Informationen finden Sie in diesem Beitrag .quelle