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 Standardverzweigung ist die erste Verzweigung, die Git auf einem neuen Klon auscheckt. Außerdem zielen Pullanforderungen standardmäßig auf diese Verzweigung ab.
Wir werden den Prozess zum Ändern der Standardverzweigung 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. – Legen Sie Verzweigungs- oder Repositoryberechtigungen fest: Berechtigungen für die Verzweigung oder das Repository verwalten . - Standardverzweigung ändern: Bearbeiten von Richtlinienberechtigungen für das Repository. - Importieren eines Repositorys: Mitglied der Sicherheitsgruppe "Projektadministratoren " oder "Git-Projektebene Repository erstellen"-Berechtigungssatz auf "Zulassen". 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 unter Ihrem Projekt-Repository"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 die Standardverzweigung fast immer benannt master.
Der beliebteste alternative Name ist main.
Weniger häufige Optionen umfassen trunk und development.
Abwesend von den Tools, die Sie verwenden oder das Team Sie verwenden, 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 Klonen des Repositorys erhalten den neuen Standardverzweigung.
Nach dem Wechsel sollte jeder mit einem vorhandenen Klon ausgeführt werden git remote set-head origin -a (ersetzen origin durch den Namen seiner Remote, wenn es sich um etwas anderes handelt), um die Ansicht der Standardverzweigung des Remotes 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 Verzweigungsname für eine Datei oder ein Verzeichnis kann in der URL angezeigt werden.
Wenn eine URL eine Abfragezeichenfolge für version, z &version=GBmybranchname. B. , enthält, sollte diese URL aktualisiert werden.
Glücklicherweise verfügen die meisten Links zu der Standardverzweigung nicht über ein version Segment und können as-isverlassen werden.
Wenn Sie auch den alten Standardverzweigung löschen, werden Versuche, dorthin zu navigieren, trotzdem zum neuen Standard weitergeleitet.
Temporäre Spiegelung
Ein Git-Repository kann nur über einen Standardverzweigung verfügen. Sie können die Ad-hoc-Spiegelung jedoch für eine Weile zwischen dem alten Standard und dem neuen Standard einrichten. Auf diese Weise müssen Endbenutzer die Arbeit am Ende nicht wiederholen, wenn Die Endbenutzer weiterhin auf den alten Standardwert übertragen. 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, z main. B. .
Das Vermeiden aller Erwähnungen master würde die Wegbeschreibung viel schwieriger zu verstehen 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.
Aktualisieren Sie sie für alle vorhandenen CI-Builds so, dass sie anstelle der alten aus dem neuen Standardverzweigung ausgelöst werden .
Erteilen Sie der Buildidentität die Berechtigung "Mitwirken" für Ihr Repository. Navigieren Sie zuProject-Einstellungsrepositorys>>(Ihr Repository)>-Berechtigungen. Es kann bis zu zwei Identitäten geben, eine für den Projektsammlungsbuilddienst und den anderen für den Projektbuilddienst. Stellen Sie sicher, dass die Berechtigung "Mitwirken " "Zulassen" besagt.
Wenn die neue Standardverzweigung Über Verzweigungsrichtlinien verfügt, erteilen Sie auch der Buildidentität die Umgehungsrichtlinien beim Pushen der Berechtigung. Diese Berechtigung ist ein Sicherheitsrisiko, da ein böswilliger Benutzer eine Pipeline erstellen könnte, um Code in einem Repository in Ihrem Projekt zu sneak code zu senden. Wenn die Spiegelung nicht mehr benötigt wird, müssen Sie diese Berechtigung entfernen.
Fügen Sie ihrem Repository in der neuen Standardverzweigung eine neue Datei
mirror.ymlhinzu. In diesem Beispiel wird davon ausgegangen, dass die alte Standardverzweigung warmasterund die neue verzweigt istmain. Aktualisieren Sie die auslösenden Verzweigungen und diegit pushZeile, wenn die Verzweigungsnamen 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 Datei aus, die
mirror.ymlSie 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
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 ihr Verzeichnis. - Sehen Sie sich die neue Standardverzweigung an
git checkout main(wennmaindies der neue Standardverzweigung ist). - Erstellen Sie eine neue Verzweigung für die Integration der beiden Verzweigungen in
git checkout -b integrate. - Zusammenführen der alten Standardverzweigung mit
git merge master(wennmasterdie alte Standardverzweigung vorhanden ist). - Pushen Sie die neue Verzweigung, öffnen und schließen Sie dann eine Pullanforderung in die neue Standardverzweigung ab.
- Die Spiegelungspipeline sollte dann die Spiegelung des Zusammenführungs-Commits wieder auf den alten Standardwert anwenden.