Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git cherry-pick kopierar ändringarna från en eller flera källgrens commit till en målgren. Till skillnad från merge eller rebase kan du välja specifika källgrensåtgärder. För varje källgrens incheckning som du väljer skapar Git en motsvarande incheckning på målgrenen.
Du kan välja att ta itu med dessa vanliga uppgifter:
- Distribuera en specifik funktion från en gren till en annan.
- Kopiera arbete som du har utfört på fel gren.
- Tillämpa en felkorrigering på flera grenar.
En översikt över Git-arbetsflödet finns i Självstudie om Azure Repos Git.
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. |
Anmärkning
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. |
Välj ett commit
Azure-lagringsplatser
Azure Repos ger begränsat stöd för körsbärsplockning och endast för att skapa en pull-begäran om att tillämpa en snabbkorrigering på en målgren. Mer information finns i Förbättra Körsbärsplockning i Azure DevOps.
Alternativet Cherry-pick i menyn för pull-begäran i Azure Repos gör följande:
- Skapar en ny ämnesgren från pull-begärans målgren.
- Cherry väljer alla ändringar från pull-begärans källgren till den nya ämnesgrenen.
- Uppmanar dig att skapa en ny pull-begäran för att sammanfoga den nya ämnesgrenen till en annan målgren.
För en steg-för-steg-handledning, se Skapa en ny pull-begäran med cherry-pick.
GitHub
GitHub-webbgränssnittet stöder inte cherry-picking, men GitHub Desktop gör det. Steg-för-steg vägledning om hur du använder cherry-picking i GitHub Desktop hittar du i Cherry-picking a commit.
Visual Studio 2022 tillhandahåller en Git-versionskontroll med hjälp av Git-menyn , Git-ändringar och snabbmenyer i Solution Explorer. Visual Studio 2019 version 16.8 erbjuder även Användargränssnittet för Team Explorer Git. Mer information finns på fliken Visual Studio 2019 – Team Explorer .
Välj Git > Hantera grenar för att öppna Git-förrådsfönstret.
I fönstret Git-lagringsplats högerklickar du på målgrenen och väljer checka ut.
I Grenar-vyn högerklickar du på källgrenen och väljer Visa historik för att öppna fliken Historik.
På fliken Historik högerklickar du på den commit som du vill cherry-picka och väljer Cherry-Pick. Visual Studio stöder inte cherry-picking av fler än en commit åt gången, så du måste upprepa det här steget för varje commit du vill cherry-picka.
Visual Studio skapar en ny commit på målgrenen som innehåller ändringarna från cherry-picked commit. Om cherry-pick-åtgärden inte slutförs framgångsrikt meddelar Visual Studio dig.
Visual Studio 2019 version 16.8 och senare versioner ger en Git-versionskontroll samtidigt som du underhåller Git-användargränssnittet för Team Explorer . Om du vill använda Team Explorer avmarkerar du Verktyg>Alternativ>Förhandsgranska funktioner>Ny Git-användarupplevelse från menyraden. Du kan använda Git-funktioner från något av gränssnitten på ett och samma sätt.
I Team Explorer väljer du knappen Start och sedan Grenar.
I vyn Grenar, högerklicka på målgrenen och välj Skaffa.
I vyn Branches högerklickar du på källgrenen och väljer Visa historik för att öppna en commit-historikflik.
På fliken Historik högerklickar du på den commit som du vill plocka och väljer Cherry-Pick. Visual Studio stöder inte att cherry-picka mer än en commit i taget, så du måste upprepa det här steget för varje commit som du vill cherry-picka.
Visual Studio skapar en ny commit för målgrenen som innehåller ändringarna från den cherry-pickade commit. Om åtgärden cherry-pick inte slutförs framgångsrikt, kommer Visual Studio att meddela dig.
Använd kommandot git log
för att lista källgrenens commit-historik. Flaggan --oneline
förkortar commit-informationen.
git log --oneline <source branch>
Git listar de senaste commiterna först. Varje inchecknings-ID är en partiell SHA-1-hash som unikt identifierar incheckningen. Till exempel:
e745d06 (HEAD -> add-network-controller) Add a test initialization class
a89f48e (origin/add-network-controller) Add fiber optic transceiver test
31da50b Add network switch test
e74baa2 (origin/main, origin/HEAD, test-fiber-optic-transmitter, main) Add readme content
0c14391 Add readme file
32e3946 Add project files.
Anteckna ID:t för ändringen inom källkodshantering som du vill plocka ut.
Kolla in målgrenen om den inte redan är utcheckad.
git checkout <target branch>
Kommitta, spara eller ta bort eventuella oåterkallade ändringar.
För att välja ut en enda commit:
git cherry-pick <commit ID>
Om du vill plocka flera incheckningar separerar du inchecknings-ID:t med blanksteg. Ändringarna genomförs i den ordning du anger dem:
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
Om du vill plocka ett inkluderande intervall med incheckningar använder du notationen ^..
punktintervall:
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
När du väljer flera incheckningar skapar standardkommandot cherry-pick en motsvarande sekvens med nya incheckningar för målgrenen. Om du vill be Git att mellanlagra och inte checka in ändringarna i målgrenen -n
använder du flaggan:
git cherry-pick -n <commit1 ID> <commit2 ID>
Sedan kan du manuellt skapa en enda commit som omfattar alla ändringar från åtgärden cherry-pick.
Git meddelar dig om det finns sammanslagningskonflikter under cherry-pick-åtgärden. Du kan antingen lösa konflikterna och sedan köra git cherry-pick --continue
eller köra git cherry-pick --abort
för att ångra operationen cherry-pick.
Nästa steg
Relaterade artiklar