Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Die Standardbranch ist der erste Branch, den Git bei einem neuen Klon auscheckt. Außerdem zielen Pullanforderungen standardmäßig auf diese Verzweigung ab.
Wir werden den Prozess zum Ändern des Standard-Branch durchgehen. Wir behandeln auch andere Dinge, die Sie berücksichtigen und aktualisieren müssen, wenn Sie diese Änderung vornehmen. Schließlich sehen wir uns ein Tool zur Beschleunigung des Übergangs an.
Voraussetzungen
| Kategorie | Anforderungen |
|---|---|
| Projektzugriff | Mitglied eines Projekts. |
| Erlaubnisse | - Code in privaten Projekten anzeigen: Mindestens einfacher Zugriff. - Klonen oder Mitwirken an Code in privaten Projekten: Mitglied der Sicherheitsgruppe "Mitwirkende" oder entsprechende Berechtigungen im Projekt. - Verzweigungs- oder Repository-Berechtigungen festlegen: "Berechtigungen verwalten" sind Berechtigungen für die Verzweigung oder das Repository. - Standard-Branch ändern: Bearbeitungsrichtlinien sind Berechtigungen für das Repository. - Importieren eines Repositorys: Mitglied der Sicherheitsgruppe "Projektadministratoren" oder Git-Projektebene-Berechtigung "Repository erstellen" auf "Zulassen" gesetzt. Weitere Informationen finden Sie unter Festlegen von Git-Repositoryberechtigungen. |
| Dienste | Repos aktiviert. |
| Werkzeuge | Wahlfrei. Verwenden Sie az repos Befehle: Azure DevOps CLI. |
Hinweis
In öffentlichen Projekten haben Benutzer mit Stakeholder-Zugriff vollzugriff auf Azure Repos, einschließlich Anzeigen, Klonen und Beitragen zu Code.
| Kategorie | Anforderungen |
|---|---|
| Projektzugriff | Mitglied eines Projekts. |
| Erlaubnisse | - Code anzeigen: Mindestens einfacher Zugriff. - Klonen oder Zum Code beitragen: Mitglied der Sicherheitsgruppe "Mitwirkende " oder entsprechende Berechtigungen im Projekt. |
| Dienste | Repos aktiviert. |
Festlegen einer neuen Standardverzweigung
Sie können einen anderen Zweig als main für neue Änderungen verwenden oder Ihre Hauptentwicklungslinie in Ihrem Repository ändern. Informationen zum Ändern des Standardverzweigungsnamens für neue Repositorys finden Sie unter "Alle Repositoryeinstellungen und -richtlinien".
Zum Ändern der Standardverzweigung Ihres Repositorys zum Zusammenführen neuer Pullanforderungen benötigen Sie mindestens zwei Verzweigungen. Wenn nur eine Verzweigung vorhanden ist, ist sie bereits die Standardeinstellung. Sie müssen eine zweite Verzweigung erstellen, um die Standardeinstellung zu ändern.
Hinweis
Das Ändern der Standardverzweigung erfordert, dass Sie über die Berechtigung "Richtlinien bearbeiten" verfügen. Weitere Informationen finden Sie unter Festlegen von Git-Repositoryberechtigungen.
Wählen Sie in Ihrem Projekt-Repository die Verzweigungen aus.
Wählen Sie auf der Seite "Verzweigungen " neben der gewünschten neuen Standardverzweigung weitere Optionen aus, und wählen Sie "Als Standardverzweigung festlegen" aus.
Nachdem Sie die neue Standardverzweigung festgelegt haben, können Sie bei Bedarf den vorherigen Standardwert löschen.
Es gibt andere Aspekte, die Sie berücksichtigen sollten, bevor Sie diese Änderung vornehmen.
Wählen Sie einen Namen aus.
Git 2.28 hat die Möglichkeit hinzugefügt, einen ursprünglichen Verzweigungsnamen auszuwählen.
Gleichzeitig haben Azure Repos, GitHub und andere Git-Hostinganbieter die Möglichkeit hinzugefügt, einen anderen ursprünglichen Branchnamen auszuwählen.
Bisher wurde der Standard-Branch fast immer als master benannt.
Der beliebteste alternative Name ist main.
Weniger häufige Optionen umfassen trunk und development.
Ohne Einschränkungen durch die verwendeten Tools oder das Team, in dem Sie arbeiten, funktionieren alle gültigen Verzweigungsnamen.
Aktualisieren anderer Systeme
Wenn Sie zu einer anderen Standardverzweigung wechseln, sind möglicherweise andere Teile Ihres Workflows betroffen. Sie müssen diese Teile berücksichtigen, wenn Sie eine Änderung planen.
Pipelines
Aktualisieren Sie die CI-Trigger für alle Pipelines. Designerpipelinen können im Web bearbeitet werden. YAML-Pipelines können in ihren jeweiligen Repositorys bearbeitet werden.
In-Flight-Pullanforderungen
Retargetieren Sie jede geöffnete Pullanforderung auf die neue Standardverzweigung.
Vorhandene Klonen
Neue Klone des Repositories erhalten den neuen Standard-Branch.
Nach dem Wechsel sollte jeder mit einem vorhandenen Klon git remote set-head origin -a ausführen (ersetzen Sie origin durch den Namen Ihres Fernzugriffs, wenn es sich um etwas anderes handelt), um Ihre Ansicht der Standardverzweigung des Fernzugriffs zu aktualisieren.
Zukünftige neue Filialen sollten auf dem neuen Standard basieren.
Eingehende Links
Einige Lesezeichen, Dokumente und andere Nicht-Codedateien, die auf Dateien in Azure Repos verweisen, müssen aktualisiert werden. Der Branchname für eine Datei oder ein Verzeichnis kann in der URL angezeigt werden.
Wenn eine URL einen Querystring für version enthält, z. B. &version=GBmybranchname, sollte diese URL aktualisiert werden.
Glücklicherweise verfügen die meisten Links zur Standard-Branch nicht über ein version Segment und können wie sie sind verlassen werden.
Sobald Sie die alte Standard-Branch löschen, werden alle Versuche, dorthin zu navigieren, dennoch zum neuen Standard-Branch weitergeleitet.
Temporäre Spiegelung
Ein Git-Repository kann nur einen Standardbranch haben. Sie können jedoch vorübergehend eine temporäre Spiegelung zwischen dem alten Standard und dem neuen Standard einrichten. Auf diese Weise müssen Ihre Endbenutzer ihre Arbeit nicht erneut durchführen, wenn sie weiterhin auf den alten Standardwert zurückgreifen. Wir verwenden Azure Pipelines , um diese temporäre Spiegelung einzurichten.
Hinweis
In diesem Abschnitt wird die Sprache verwendet, die mit der Perspektive von Microsoft in Konflikt steht.
Insbesondere wird das Wort master an mehreren Stellen angezeigt, die mit der Verwendung in Git übereinstimmen.
Der Zweck dieses Themas besteht darin, zu erläutern, wie Sie zu einer inklusiveren Sprache wechseln können, wie zum Beispiel main.
Das vollständige Vermeiden der Erwähnung von master würde die Wegbeschreibung deutlich schwieriger verständlich machen.
Die Spiegelungspipeline
Hinweis
Diese Anweisungen sind nicht narrensicher, und Ihr Repositorysetup erfordert möglicherweise zusätzliche Änderungen, z. B. das Lockern von Berechtigungen und Richtlinien.
Warnung
Wenn die alten und neuen Standardverzweigungen vor der Ausführung dieser Pipeline aktualisiert werden, kann die Pipeline die Änderungen nicht spiegeln. Jemand muss die alte Standardverzweigung manuell in die neue Standardverzweigung zusammenführen , damit sie automatisch wieder ausgeführt wird.
Für alle vorhandenen CI-Builds, aktualisieren Sie diese so, dass sie gegen Ihren neuen Standardzweig anstelle des alten ausgelöst werden.
Erteilen Sie der Build-Identität die Berechtigung "Mitwirken" für Ihr Repository. Navigieren Sie zu Projekteinstellungen>Repositorys>(Ihr Repository)>Berechtigungen. Es kann bis zu zwei Identitäten geben, eine für den Projektsammlungsbuilddienst und die andere für den Projektbuilddienst. Stellen Sie sicher, dass die Berechtigung Beitragen: Zulassen lautet.
Wenn die neue Standardverzweigung über Verzweigungsrichtlinien verfügt, erteilen Sie auch der Buildidentität die Berechtigung, Richtlinien beim Pushen zu umgehen. Diese Berechtigung stellt ein Sicherheitsrisiko dar, da ein böswilliger Benutzer eine Pipeline erstellen könnte, um unbemerkt Code in ein Repository Ihres Projekts einzuschleusen. Stellen Sie sicher, diese Berechtigung zu entfernen, wenn die Spiegelung nicht mehr benötigt wird.
Fügen Sie ihrem Repository in der neuen Standardverzweigung eine neue Datei
mirror.ymlhinzu. In diesem Beispiel wird davon ausgegangen, dass der alte Standard-Branchmasterwar und der neuemainist. Aktualisieren Sie die auslösenden Branches und diegit pushZeile, wenn Ihre Branch-Namen unterschiedlich sind.
trigger:
branches:
include:
- main
- master
pool: { vmImage: ubuntu-latest }
steps:
- checkout: self
persistCredentials: true
- script: |
git checkout $(Build.SourceBranchName)
git push origin HEAD:master HEAD:main
displayName: Mirror old and new default branches
- Erstellen Sie eine neue Pipeline, und wählen Sie im Assistenten "Azure Repos Git" und "Vorhandene Azure Pipelines YAML-Datei" aus.
Wählen Sie die
mirror.ymlDatei aus, die Sie im vorherigen Schritt hinzugefügt haben. Speichern Sie die Pipeline und führen Sie sie aus.
Problembehandlung
Diese Pipeline wird jedes Mal ausgeführt, wenn ein Push an master oder an main erfolgt.
Sie werden synchronisiert, solange neue Commits nicht gleichzeitig auf beiden Zweigen eingehen.
Wenn die Pipeline mit einer Fehlermeldung wie "Updates wurden abgelehnt, da sich eine Push-Verzweigungsspitze hinter der Fernbedienung befindet" fehlschlägt, muss jemand die alte Verzweigung manuell in die neue Verzweigung zusammenführen.
- Klonen Sie das Repository und
cdin dessen Verzeichnis. - Sehen Sie sich den neuen Standardbranch mit
git checkout mainan (fallsmainIhr neuer Standardbranch ist). - Erstellen Sie einen neuen Branch zur Integration der beiden Branches mit
git checkout -b integrate. - Zusammenführen der alten Standardverzweigung mit
git merge master(wennmasterIhre alte Standardverzweigung ist). - Pushen Sie den neuen Branch, öffnen und schließen Sie dann einen Pull Request in den neuen Standardbranch ab.
- Die Spiegelungspipeline sollte dann die Spiegelung des Zusammenführungs-Commits wieder auf den alten Standardwert anwenden.