Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git cherry-pick zkopíruje změny z jednoho nebo více commitů zdrojové větve do cílové větve. Na rozdíl od sloučení nebo rebase vám cherry-pick umožňuje vybrat konkrétní potvrzení ze zdrojové větve. Pro každé potvrzení zdrojové větve, které vyberete, Git vytvoří odpovídající potvrzení v cílové větvi.
Můžete si vybrat, jak řešit tyto běžné úkoly:
- Nasaďte konkrétní funkci z jedné větve do druhé.
- Zkopírujte práci, kterou jste potvrdili ve špatné větvi.
- Aplikovat opravu chyb na více větví.
Přehled pracovního postupu Gitu najdete v kurzu Gitu pro Azure Repos.
Požadavky
Kategorie |
Požadavky |
Přístup k projektu |
Člen projektu. |
Oprávnění |
- Zobrazit kód v soukromých projektech: Alespoň Základní přístup. - Klonování nebo přispívání do kódu v soukromých projektech: Člen skupiny zabezpečení Contributors nebo osoba s odpovídajícími oprávněními v projektu. – Nastavte oprávnění pro větev nebo úložiště: Správa oprávnění oprávnění pro větev nebo úložiště. – Změnit výchozí větev: Upravit zásady oprávnění pro úložiště. – Import úložiště: Člen skupiny zabezpečení Projektoví administrátoři nebo oprávnění Vytvořit úložiště na úrovni projektu Git nastavená na Povolit. Další informace najdete v tématu Nastavení oprávnění úložiště Git. |
Služby |
Repozitáře povoleny. |
Nástroje |
Volitelný. Použijte příkazy az repos: Azure DevOps CLI. |
Poznámka:
Ve veřejných projektech mají uživatelé s přístupem Stakeholder plný přístup do Azure Repos, kde mohou zobrazovat, klonovat a přispívat ke kódu.
Kategorie |
Požadavky |
Přístup k projektu |
Člen projektu. |
Oprávnění |
- Zobrazit kód: Alespoň základní přístup. - Klonování nebo přispívání do kódu: Člen skupiny zabezpečení Přispěvatelé nebo odpovídající oprávnění v rámci projektu. |
Služby |
Repozitáře povoleny. |
Vybrat konkrétní commit
Azure Repos
Azure Repos poskytuje omezenou podporu pro cherry-pickování a pouze za účelem vytvoření pull requestu pro aplikaci hotfixu na cílovou větev. Další informace najdete v tématu Vylepšení cherry-pickingu v Azure DevOps.
Možnost Cherry-pick v nabídce pull requestu v Azure Repos provede následující:
- Vytvoří novou tématickou větev z cílové větve pull requestu.
- Vybere všechny změny z původní větve pull requestu na novou pracovní větev.
- Upozorní vás, abyste vytvořili nový pull request pro sloučení nové větve tématu do jiné větve.
Pro podrobný návod si přečtěte Vytvoření nové žádosti o přijetí změn pomocí cherry-pick.
GitHub
Webové rozhraní GitHubu nepodporuje cherry-picking, ale GitHub Desktop tuto funkci podporuje. Podrobné pokyny k výběru v GitHub Desktopu najdete v tématu Výběr potvrzení.
Visual Studio 2022 poskytuje prostředí pro správu verzí Git pomocí nabídky Git, Změny Gitu a kontextových nabídek v Průzkumníku řešení. Visual Studio 2019 verze 16.8 také nabízí uživatelské rozhraní Git Team Exploreru. Podívejte se na kartu Visual Studio 2019 – Team Explorer pro více informací.
Zvolte Git > Manage Branches a otevřete okno Git Repository.
V okně Úložiště Git klikněte pravým tlačítkem na cílovou větev a zvolte Rezervovat.
V zobrazení Větve klikněte pravým tlačítkem na zdrojovou větev a zvolte Zobrazit historii a otevřete kartu Historie potvrzení.
Na kartě Historie klikněte pravým tlačítkem na potvrzení, které chcete vybrat, a zvolte Cherry-Pick. Visual Studio nepodporuje výběr několika potvrzení najednou, takže tento krok budete muset opakovat pro každé potvrzení, které chcete vybrat.
Visual Studio vytvoří nový commit ve cílové větvi, který obsahuje změny z cherry-pickovaného commitu. Pokud se operace cherry-pick úspěšně nedokončí, Visual Studio vás upozorní.
Visual Studio 2019 verze 16.8 a novější verze poskytují prostředí pro správu verzí Gitu při zachování uživatelského rozhraní Git Team Exploreru. Pokud chcete použít Team Explorer, zrušte zaškrtnutí možnosti New Git user experience v části Nástroje>Možnosti>Preview Features, která se nachází na řádku nabídek. Funkce Gitu můžete používat z obou rozhraní zaměnitelně.
V Team Explorer vyberte tlačítko Domů a zvolte Větve.
V zobrazení Větve klikněte pravým tlačítkem na cílovou větev a zvolte Rezervovat.
V zobrazení Větve klikněte pravým tlačítkem na zdrojovou větev a zvolte Zobrazit historii pro otevření karty Historie.
Na kartě Historie klikněte pravým tlačítkem na potvrzení, které chcete vybrat, a zvolte Cherry-Pick. Visual Studio nepodporuje výběr několika potvrzení najednou, takže tento krok budete muset opakovat pro každé potvrzení, které chcete vybrat.
Visual Studio vytvoří nový commit cílové větve, který obsahuje změny z cherry-pickovaného commitu. Pokud se operace cherry-pick nedokončí úspěšně, Visual Studio vás upozorní.
Použijte příkaz git log
k vypsání commitů zdrojové větve. Příznak --oneline
zkracuje informace o potvrzení.
git log --oneline <source branch>
Git nejprve zobrazí seznam nejnovějších potvrzení. Každé ID potvrzení je částečná hodnota hash SHA-1, která jednoznačně identifikuje potvrzení. Příklad:
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.
Poznamenejte si ID potvrzení, které chcete vybrat.
Pokud ještě není přepnutá, přepněte na cílovou větev.
git checkout <target branch>
Potvrďte, uschovejte nebo zahoďte všechny nepotvrzené změny.
Pokud chcete vybrat jedno potvrzení:
git cherry-pick <commit ID>
Pokud chcete vybrat více potvrzení, oddělte ID potvrzení mezerami. Commity se použijí v pořadí, v jakém je zadáte:
git cherry-pick <commit1 ID> <commit2 ID> <commit3 ID>
Pokud chcete vybrat inkluzivní rozsah potvrzení, použijte notaci s tečkovým rozsahem:
git cherry-pick <oldest-commit ID>^..<newest-commit ID>
Když cherry-pickujete více commitů, výchozí příkaz cherry-pick vytvoří odpovídající sekvenci commitů na nové cílové větvi. Pokud chcete Gitu oznámit, že má provést fázi a ne potvrdit změny cílové větve, použijte -n
příznak:
git cherry-pick -n <commit1 ID> <commit2 ID>
Pak můžete ručně vytvořit jedno potvrzení, které bude obsahovat všechny změny z operace výběru třešně.
Git vás upozorní, pokud během operace cherry-pick dojde ke konfliktům při slučování. Konflikty můžete buď vyřešit a pak spustitgit cherry-pick --continue
, nebo spustit git cherry-pick --abort
pro zrušení operace cherry-pick.
Další kroky
Související články