web-dev-qa-db-de.com

Wie benenne ich meinen Git 'Master' Zweig in 'Release' um?

Wir möchten eine neue Richtlinie für unsere Projekte durchsetzen, wonach der Hauptzweig nun als Freigabezweig 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 möglich. Auch wenn ich dies auf die Fernbedienung hochschiebe, zeigt der HEAD) immer noch auf den entfernten Hauptzweig. Ich möchte den Hauptzweig vollständig loswerden und beim ersten Klonen den lokalen Standardzweig machen, be Veröffentlichung.

Wie kann ich das erreichen?

EDIT: Es scheint, dass ich Fehler beim Löschen des Master-Zweigs bekomme, da sich der Origin auf einem überragenden Server befindet. Ich versuche jetzt zu sehen, ob es möglich ist, dies so zu ändern, dass der Standardzweig "release" lautet.

76
Kyle Hayes
git checkout -b release master    # create and switch to the release branch
git Push -u Origin release        # Push the release branch to the remote and track it
git branch -d master              # delete local master
git Push --delete Origin master   # delete remote master
git remote Prune Origin           # delete the remote tracking branch
97
Adam Dymitruk

Kasse Ihrer Master-Filiale

git checkout master

Erstellen Sie Ihren Release-Zweig und wechseln Sie zu ihm

git branch release
git checkout release

Schieben Sie das auf den Server

git Push Origin release

Löschen Sie die Hauptzweigreferenz auf dem Server

git Push Origin :master

Löschen Sie den lokalen Hauptzweig

git branch -d master
9
Jeff Ferland

Hinweis: Diese Antwort ist für selbst gehostete Git-Server gedacht, auf die Sie über Befehlszeilenzugriff verfügen.

Da der Versuch, den remote master - Code von einem Client zu löschen, in der Tat nicht zulässig ist und ich davon ausgehe, dass es Sinn macht, denyDeleteCurrent zu verbieten, möchte ich diese Einstellung nicht ändern.

Ich habe jedoch festgestellt, dass die einfachste Möglichkeit, Ihren Master umzubenennen , wenn Sie über Befehlszeilenzugriff auf den Remoteserver verfügen ausgeführt werden soll der Umbenennungsbefehl direkt auf der Fernbedienung.

Das hat bei mir funktioniert:

  1. Melden Sie sich über SSH beim Remote-Git-Server an
  2. Wechseln Sie in den Ordner xxx.git Ihres Projekts
  3. run: git branch -m master release

Jetzt verwendet das Remote-Repository release als Standardverzweigung, und jedes git clone In diesem Repository von einem beliebigen Client checkt die Release-Verzweigung standardmäßig aus.

Sehr hilfreich auch nach dem Einrichten eines Bare-Repositorys, um es an Ihre Bedürfnisse anzupassen.

2

Wie bereits von anderen erwähnt, handelt es sich um das Problem "Gitorious", bei dem Sie den HEAD-Zweig nicht standardmäßig löschen können. Sie haben zwei Möglichkeiten, um dieses Problem zu umgehen. Eine besteht darin, sich beim Server anzumelden (mit ssh), das Git-Repository auf dem Dateiserver zu finden und Folgendes hinzuzufügen:

[receive]
        denyDeleteCurrent = warn

zur Konfig.

Eine einfachere Option besteht darin, den Standardzweig zu ändern. Gehen Sie zu Ihrem Repository in der bekannten Web-Oberfläche, drücken Sie "Repository bearbeiten" und setzen Sie "Kopf Ändern Sie den symbolischen Verweis auf HEAD im Git-Repository auf:". Danach können Sie den Master-Zweig löschen.

Idealerweise möchten Sie das Tracking einrichten. Gehen Sie dazu wie folgt vor:

git Push Origin HEAD:release
git checkout --track Origin/release

Nun möchten Sie die anderen löschen?

git branch -d master
git Push Origin :master

Einfach!

1
gahooa