Gafflar

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 konfidentiella ändringar i en kodbas, men dessa ändringar måste isoleras från kodbasen i den ursprungliga lagringsplatsen. En ny förgrening är i princip en klon av den ursprungliga lagringsplatsen som skickas till en ny fjärrdatabas. Förgreningen är oberoende av den ursprungliga lagringsplatsen och är en fullständig kopia om du inte anger en enda gren.

Som en oberoende kopia delas inte ändringar som du gör i din förgrening, till exempel att lägga till incheckningar eller grenar, med 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, principer 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 förgreningar
  • Aktivera lagringsplatsens förgrening
  • Skapa en förgrening
  • Klona förgreningen lokalt
  • Skicka lokala ändringar till din förgrening
  • Skapa och slutföra en PR
  • Synkronisera din förgrening

Krav för åtkomst till Azure-lagringsplatser

  • Lagringsplatser måste vara aktiverade i dina Azure DevOps-projektinställningar. Om lagringshubben och de associerade sidorna inte visas kan du läsa Aktivera eller inaktivera en Azure DevOps-tjänst till lagringsbara lagringsplatser.

  • Om du vill visa kod i privata projekt måste du vara medlem i ett Azure DevOps-projekt med grundläggande åtkomstnivå eller högre. För offentliga projekt kan alla visa koden.

  • Om du vill klona eller bidra till kod för ett privat projekt måste du vara medlem i säkerhetsgruppen Deltagare eller ha motsvarande behörigheter angivna. För offentliga projekt kan vem som helst klona och bidra med kod. Mer information finns i Vad är ett offentligt projekt?

    Kommentar

    För offentliga projekt har användare som beviljats intressentåtkomst fullständig åtkomst till Azure Repos.

  • Lagringsplatser måste vara aktiverade i dina Azure DevOps-projektinställningar. Om lagringshubben och de associerade sidorna inte visas kan du läsa Aktivera eller inaktivera en Azure DevOps-tjänst till lagringsbara lagringsplatser.

  • Om du vill visa kod måste du vara medlem i Azure DevOps-projektet med grundläggande åtkomst eller högre. Om du inte är projektmedlem läggs du till.

  • Om du vill klona eller bidra till kod måste du vara medlem i säkerhetsgruppen Deltagare eller ha motsvarande behörigheter i det projekt som du vill ändra.

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ålrepoens behörigheter, principer, byggen och arbetsobjekt 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 lagringsplatsen har ett stort antal tillfälliga eller ovanliga incheckningar, till exempel ett öppen källkod projekt, rekommenderar vi förgreningsarbetsflödet. Vanligtvis bör endast kärndeltagare i projektet ha direkt incheckningsrättigheter till din ursprungliga lagringsplats. Andra medarbetare bör använda ett förgreningsarbetsflöde för att isolera sina föreslagna ändringar tills kärndelgivarna har möjlighet att granska sitt 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.

  1. Skapa en förgrening
  2. Klona din förgrening lokalt
  3. Skicka lokala ändringar till din förgrening
  4. Skapa och slutföra en PR
  5. 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 måste du ha behörigheten Skapa lagringsplats för projektet. Lagringsplatsägare bör överväga att skapa ett dedikerat projekt för gafflar och tilldela behörigheten Skapa lagringsplats till alla deltagare. Mer information om hur du anger behörigheter finns i Ange Behörigheter för Git-lagringsplats.

  1. Från webbläsaren går du till git-lagringsplatsen för Azure Repos som du vill förgrena. Välj LagringsplatsFiler> och välj sedan Förgrening på ellipsmenyn för att öppna dialogrutan Förgrening.

    Skärmbild av menyalternativet Förgrening i menyn Fler åtgärder på sidan Lagringsplatsfiler i Azure Repos.

  2. 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.

    Skärmbild av dialogrutan Förgrening på sidan Lagringsplatsfiler i Azure Repos.

Information om hur du förgrenar en GitHub-lagringsplats finns i Förgrena en lagringsplats.

Klona förgreningen lokalt

När du har förgrenat en lagringsplats klonar du din förgrening 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.

Dricks

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:

  1. Välj Verktygsalternativ> i menyraden för att öppna fönstret Alternativ. Välj Git-lagringsplats för källkontroll > Inställningar > Fjärranslutningar och välj sedan Lägg till för att öppna dialogrutan Lägg till fjärranslutning.

    Skärmbild av knappen Lägg till i fönstret Fjärranslutningar i Git-lagringsplatsen Inställningar undermeny på menyn Källkontroll i Visual Studio 2019.

  2. 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.

    Skärmbild av dialogrutan Lägg till fjärranslutning i Visual Studio 2019.

Skicka lokala ändringar till din förgrening

När du förgrenar skapar du en personlig och oberoende kopia av fjärrlagringsplatsen. 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:

  1. Skapa en lokal funktion eller en felkorrigeringsgren.

  2. Gör ändringar i den nya grenen och genomför ditt arbete. Vanligtvis gör personer flera incheckningar när de arbetar med en funktion eller buggkorrigering.

  3. 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:

  1. Skapa en PR för att begära granskning och godkännande av dina ändringar. När du öppnar en PR anger du PR-källgrenen till funktionen eller bugfix-grenen i din förgrening. PR-målgrenen är vanligtvis den main gren av lagringsplatsen som du förgrenade. Lagringsplatsen kallas för den överordnade lagringsplatsen och har aliaset upstream.

    Följande skärmbild visar källlagringsplatsen och -grenen samt mållagringsplatsen och grenen för en PR som skapats i Azure Repos.

    Skärmbild av alternativen för PR-källa och målgren 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 med läsbehörigheten på den överordnade lagringsplatsen kan öppna en PR för den. Om den överordnade lagringsplatsen har en PR-bygg-pipeline som är konfigurerad för att köras när PR skapas, körs en version på de ändringar som introduceras av din PR.

  2. 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 skicka från din uppdaterade lokala gren till origin.

Vanligtvis är mainmålgrenen för den överordnade lagringsplatsen . Om du inte redigerar din lokala main gren direkt (du arbetar i funktionsgrenar) uppdateras din lokala main gren utan sammanslagningskonflikter om du hämtar från den överordnade grenenupstream/main.

Nästa steg