Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git-lagringsplatsens förgreningar är användbara när personer vill göra experimentella, riskfyllda eller dolda ändringar i en kodbas, men dessa ändringar måste isoleras från kodbasen på den ursprungliga lagringsplatsen. En ny förgrening är i princip en ny fjärrlagringsplats som delar källkoden för den ursprungliga lagringsplatsen.
Som en oberoende version döljs ändringar som du gör i din förgrening, till exempel att lägga till incheckningar eller grenar, från den ursprungliga lagringsplatsen. Om du vill sammanfoga dina codebase-ändringar till den ursprungliga lagringsplatsen måste du skapa en pull-begäran (PR) för att begära granskning och godkännande av dessa ändringar.
Förgreningsprocessen överför inte några behörigheter, policyer eller bygg-pipelines från den ursprungliga lagringsplatsen till din förgrening.
Den här artikeln beskriver hur du arbetar med förgreningar i Git-lagringsplatser för Azure Repos och innehåller länkar till GitHub-innehåll som beskriver hur du hanterar förgreningar i GitHub-lagringsplatser.
I den här artikeln lär du dig hur du:
- Dela kod mellan förgreningar
- Välj mellan grenar och gaflar
- Aktivera lagringsplatsens förgrening
- Skapa en förgrening
- Klona din fork lokalt
- Skicka lokala ändringar till din gaffel
- Skapa och slutföra en PR
- Synkronisera din förgrening
Förutsättningar
Kategori | Krav |
---|---|
Åtkomst till projekt | Medlem av ett -projekt. |
behörigheter | Visa kod i privata projekt: Minst grundläggande åtkomst . – Klona eller bidra till kod i privata projekt: Medlem i Bidragsgivare säkerhetsgrupp eller projektets motsvarande behörigheter. – Ange behörigheter för gren eller lagringsplats: Hantera behörigheter behörigheter för grenen eller lagringsplatsen. – Ändra standardgren: Redigera principer behörigheter för lagringsplatsen. – Importera en lagringsplats: Medlem i Projektadministratörer säkerhetsgrupp eller Git-projektnivå Skapa lagringsplats behörighet inställd på Tillåt. Mer information finns i Ange Behörigheter för Git-lagringsplats. |
Tjänster | Repos aktiverat. |
Verktyg | Valfritt. Använd kommandona az repos: Azure DevOps CLI. |
Kommentar
I offentliga projekt har användare med åtkomst på intressentnivå fullständig åtkomst till Azure Repos, inklusive att se, klona och bidra till kod.
Kategori | Krav |
---|---|
Åtkomst till projekt | Medlem av ett -projekt. |
behörigheter | – Visa kod: Minst Grundläggande åtkomst. – Klona eller bidra till kod: Medlem i Contributors säkerhetsgrupp eller motsvarande behörigheter i projektet. |
Tjänster | Repos aktiverat. |
Dela kod mellan förgreningar
Den ursprungliga lagringsplatsen kallas ofta för den överordnade lagringsplatsen. Du kan skapa PR:er för att sammanfoga ändringar i endera riktningen: från förgrening till uppströms eller uppströms till förgrening. Den vanligaste riktningen är från förgrening till uppströms. Målrepoets behörigheter, principer, byggen och arbetsuppgifter gäller för PR.
Välj mellan grenar och förgreningar
För ett litet team med 2–5 utvecklare kanske ett förgreningsarbetsflöde inte är nödvändigt eftersom alla kan arbeta i funktionsgrenar och grenprinciper kan skydda standardgrenen. Men om ditt team expanderar och växer ut det här arrangemanget kan de växla till ett förgreningsarbetsflöde.
Om ditt repo har ett stort antal tillfälliga eller sällsynta medarbetare, som ett öppen källkodsprojekt kan ha, rekommenderar vi arbetsflödet med förgreningar. Vanligtvis bör endast kärndeltagare i ditt projekt ha direkt rättigheter att göra commits till ditt ursprungliga repository. Andra medarbetare bör använda ett förgreningsarbetsflöde för att isolera sina föreslagna ändringar tills huvudbidragsgivarna har fått tillfälle att granska deras arbete.
Aktivera lagringsplatsens förgrening
Information om hur du aktiverar förgreningar för en Git-lagringsplats för Azure Repos finns i aktivera förgreningar.
Information om hur du aktiverar förgreningar för en GitHub-lagringsplats finns i Hantera förgreningsprincipen för din organisation.
Arbetsflödet för förgrening
Förgreningsarbetsflödet består av fem steg som beskrivs i följande avsnitt.
- Skapa en förgrening
- Klona din förgrening lokalt
- Skicka lokala ändringar till din fork
- Skapa och slutföra en PR
- Synkronisera din förgrening
Skapa en förgrening
Följande steg beskriver hur du förgrenar en Azure Repos Git-lagringsplats.
Kommentar
Om du vill förgrena en lagringsplats i ett Azure DevOps-projekt har du behörigheten Skapa lagringsplats för projektet. Ägare av repos bör överväga att skapa ett särskilt projekt för forkar och tilldela behörigheten att skapa repos till alla deltagare. Mer information om hur du anger behörigheter finns i Ange Behörigheter för Git-lagringsplats.
Från webbläsaren går du till git-lagringsplatsen för Azure Repos som du vill förgrena. Välj Repo-filer och välj Förgrening på ellipsmenyn för att öppna dialogrutan Förgrening.
I dialogrutan Förgrening namnger du den förgrenade lagringsplatsen, väljer det projekt där du vill att förgreningen ska skapas, väljer de grenar som ska inkluderas i förgreningen och väljer sedan Förgrening. Du kan ange om förgreningen ska innehålla alla grenar eller bara standardgrenen. Om lagringsplatsen innehåller flera ämnesgrenar bör du bara överväga att inkludera standardgrenen i din förgrening.
Information om hur du förgrenar en GitHub-lagringsplats finns i Förgrena en lagringsplats.
Klona förgreningen lokalt
När du har gjort en fork av ett repository klonar du din fork för att skapa en lokal kopia i en mapp på datorn. Du kan klona från kommandoraden eller med hjälp av en IDE som Visual Studio. Mer information om hur du klonar en lagringsplats finns i Klona en befintlig Git-lagringsplats.
När du klonar en fjärransluten lagringsplats tilldelar Git aliaset origin
som en förkortning för URL:en för den fjärranslutna lagringsplats som du klonade. För enkelhetens skull lägger du till ytterligare ett alias med namnet upstream
för den lagringsplats som du förgrenade från, vilket kallas den överordnade lagringsplatsen. Följande steg beskriver hur du lägger till ett upstream
alias.
Tips
För enkelhetens skull kan du använda aliasen origin
och upstream
i stället för motsvarande URL:er i dina Git-kommandon.
Följ dessa steg för att lägga till ett upstream
alias i Visual Studio:
Välj Verktyg > Alternativ i menyraden för att öppna Alternativ fönstret. Välj Källkontroll > Git-lagringsplatsinställningar > Fjärranslutningar och välj sedan Lägg till för att öppna dialogrutan Lägg till fjärrlagringsplats .
I dialogrutan Lägg till fjärranslutning lägger du till en ny fjärranslutning med namnet
upstream
och anger Git-klonings-URL:en för lagringsplatsen som du förgrenade. Välj sedan Spara.
Skicka lokala ändringar till din gaffel
När du förgrenar skapar du en personlig version av den ursprungliga lagringsplatsen (den ursprungliga lagringsplatsen kallas "uppströms"). Förgrening är oberoende av uppströms, men förgrening delar koden och behåller en länk till uppströms, vilket möjliggör framtida synkronisering. Därför finns det inget som hindrar dig från att arbeta direkt i grenen av den main
lokala klonen och sedan push-överföra det arbetet till grenen main
av din förgrening. Det är dock i allmänhet bättre att använda funktionsgrenar för ditt arbete. Med hjälp av funktionsgrenar:
Du kan underhålla flera oberoende arbetsströmmar samtidigt.
Du gör det enklare för andra att förstå det arbete du delar eftersom det arbetet är organiserat i olika arbetsströmmar per gren.
Ett vanligt Git-arbetsflöde innehåller följande steg:
Skapa en lokal funktion eller en felkorrigeringsgren.
Gör ändringar i den nya grenen och genomför ditt arbete. Vanligtvis gör utvecklare flera commitar när de arbetar med en funktion eller buggfix.
Skicka funktionen eller felkorrigeringsgrenen till din förgrening. Din förgrening har aliaset
origin
.
Information om hur du push-överför ändringarna finns i Dela kod med push-överföring.
Skapa och slutföra en PR
Om du vill sammanfoga de ändringar som du överförde till din förgrening i Azure Repos kan du:
Skapa en PR för att begära granskning och godkännande av dina ändringar. När du öppnar en PR ska du ange PR-källgrenen till funktionsgrenen eller buggfixgrenen i din förgrening. PR-targetgrenen är vanligtvis den
main
branch av det repository som du forkade. Lagringsplatsen kallas för den överordnade lagringsplatsen och har aliasetupstream
.Följande skärmbild visar källlagringsplatsen och -grenen samt mållagringsplatsen och grenen för en PR som skapats i Azure Repos.
Mer information om hur du skapar en PR med din webbläsare, Visual Studio eller Azure DevOps CLI finns i Skapa en PR.
Viktigt!
Alla i Project Valid Users och med behörigheten Läs på den överordnade lagringsplatsen kan öppna en PR till den. Om den överordnade lagringsplatsen har en PR-byggpipeline som är konfigurerad för att köras under skapandet av en PR, kommer ett bygge att köras baserat på de ändringar som introduceras av din PR.
För att din pr ska kunna slutföras måste alla nödvändiga granskare godkänna PR-ändringarna och alla målgrensprinciper måste uppfyllas. Vid PR-godkännande och slutförande sammanfogas ändringarna i PR-källgrenen till PR-målgrenen.
Information om hur du skapar och slutför en GitHub-PR finns i Skapa en pull-begäran och Slå samman en pull-begäran.
Synkronisera din förgrening
När en PR har sammanfogat ändringarna från din förgrening till målgrenen för den överordnade lagringsplatsen kan du hämta från målgrenen för den överordnade lagringsplatsen för att uppdatera motsvarande lokala gren med både dina ändringar och eventuella ändringar som gjorts av andra deltagare. Då är du redo att:
Skapa en ny funktion eller en felkorrigeringsgren från den uppdaterade lokala grenen.
Uppdatera din förgrening genom att pusha från din uppdaterade lokala gren till
origin
.
Vanligtvis är målgrenen för den överordnade lagringsplatsen main
. Om du inte redigerar din lokala main
-gren direkt (du arbetar i funktionsgrenar), kommer det att uppdatera din lokala main
-gren utan sammanslagningskonflikter att dra från den uppströms grenen upstream/main
.