Číst v angličtině

Sdílet prostřednictvím


Dokončete, zrušte nebo vrátíte žádosti o přijetí změn

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Jakmile všichni požadovaní recenzenti schválí váš pull request (PR) a PR splní všechny požadavky zásad větve, můžete změny sloučit do cílové větve a dokončit PR. Nebo pokud se rozhodnete nepokračovat ve změnách v PR, můžete PR opustit.

Chcete-li řešit změny od revidujících, reagovat na komentáře a vyřešit je, přečtěte si Řešení komentářů.

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í přispěvatelů nebo 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 na úrovni Stakeholder plný přístup k Azure Repos, které zahrnují zobrazení, klonování a přispívání 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.

Další informace o oprávněních a přístupu naleznete v částech Výchozí oprávnění úložiště Git a větve a Informace o úrovních přístupu.

V Azure DevOps Services můžete z rozhraní příkazového řádku Azure (CLI) s rozšířením spravovat PR a další prostředky. Informace o tom, jak pracovat s rozhraním příkazového řádku Azure DevOps Services, najdete v tématu Začínáme s Azure DevOps CLI. Příkazy CLI pro žádosti o přijetí změn v Azure Repos používají az repos pr.

Zkontrolovat změny po sloučení

Po dokončení žádosti o přijetí změn Git přidá na konec hlavní větve nové potvrzení sloučení. Tento slučovací potvrzení propojuje dřívější historii hlavní větve a zdrojové větve pull requestu. Pokud chcete zobrazit náhled potvrzení sloučení a zkontrolovat konflikty při sloučení, vyberte nabídku Další možnosti v pravém horním rohu na stránce Přehled PR, a pak vyberte Zobrazit změny sloučení.

Pokud jste po vytvoření žádosti o přijetí změn změnili cílovou větev, výběrem Restartovat sloučení vytvořte nové náhledové potvrzení sloučení a aktualizujte zobrazení rozdílu sloučení.

Snímek obrazovky znázorňující možnosti sloučení a restartování sloučení v nabídce Další možnosti v P R

Přezkoumání zásad větví

Týmy můžou nastavit zásady větví, které vyžadují, aby PR v chráněných větvích splňovaly konkrétní kritéria před jejich sloučením. Uvidíte zásady pro větve použité na váš PR, zda jsou vyžadovány ke sloučení, a zda PR uspěje nebo selže.

Karta Přehledu PR shrnuje zásady větví, které prochází nebo selhávají pro daný PR. Přehled obsahuje pouze nezdařené zásady, ale všechny kontroly zásad můžete zobrazit výběrem možnosti Zobrazit <n> kontrol.

Na stránce Přehled PR se u požadavků na zásady větví zobrazuje ikona. Vyberte Další možnosti vedle požadavku a potom vyberte Zobrazit zásadu a přejděte na stránku politik větve v Nastavení projektu.

Snímek obrazovky znázorňující zobrazení zásad vedle požadavku na zásady větve v P R

Dokončení pull requestu

Jakmile vyřešíte všechny konflikty při slučování a PR splňuje všechna pravidla větví a má všechna požadovaná schválení, můžete PR dokončit.

  1. Výběrem možnosti Dokončit v pravém horním rohu dokončete PR. Nebo klikněte na šipku rozbalovacího seznamu vedle tlačítka Dokončit a vyberte jednu z možností.

    Snímek obrazovky s možnostmi tlačítka Dokončit pro P R

    • Dokončete PR: Dokončete PR nyní a sloučte změny do cílové větve.
    • Nastavit automatické dokončování: Nakonfigurujte PR tak, aby se dokončil a sloučil, jakmile splňuje všechny požadované zásady větve.
    • Označit jako koncept: Vraťte žádost o přijetí změn do stavu konceptu a odeberte všechny hlasy.
    • Opustit: Uzavřít pull request bez sloučení změn.
  2. V podokně Dokončit požadavek na začlenění, v části Typ sloučení, vyberte jednu z možností sloučení.

    Snímek obrazovky znázorňující kompletní dialogové okno P R

    • Sloučení (bez rychlého posunu): Sloučit s nelineární historií, která zachovává všechny commity.
    • Squash commit: Sloučení s lineární historií, která kombinuje všechny zdrojové commity do jednoho commitu v cíli, nebo squash sloučí PR. Mějte na paměti, že pro cílovou větev se vytvoří nové potvrzení bez zachování historie potvrzení ze zdrojové větve.
    • Rebase a fast-forward: Přesuňte (rebase) zdrojové commity na cílovou větev a proveďte fast-forward.
    • Pololineární sloučení: Rebáze zdrojových commitů na cíl a vytvoření dvou-rodičovského sloučení.

    Poznámka

    Vynucují se existující zásady. Pokud má například vaše větev aktuálně zásadu „pouze squash merge“, musíte tuto zásadu změnit, pokud chcete použít jiný typ sloučení.

  3. Vyberte některou z následujících možností po dokončení. Některé možnosti nejsou k dispozici pro některé typy sloučení.

    • Dokončení přidružených pracovních položek po sloučení: Dokončete všechny propojené pracovní položky.
    • Odstranit <větev> po sloučení: Po sloučení odstranit zdrojovou větev PR.
    • Přizpůsobit zprávu sloučení: Zadejte vlastní zprávu k zápisu sloučení. Pokud vyberete tuto možnost, aktualizujte zprávu potvrzení sloučení.
    • Ponechte zásady větve stranou a povolte slučování. Přinuťte sloučení, i když PR nenaplňuje všechny zásady větve. Tato možnost je dostupná jenom v případě, že máte oprávnění Výjimka z vynucování zásad.
  4. Vyberte Dokončit sloučení.

  1. Výběrem možnosti Dokončit v pravém horním rohu dokončete PR. Nebo vyberte šipku rozevíracího seznamu vedle tlačítka Dokončit a vyberte jednu z následujících možností:

    Snímek obrazovky s možnostmi tlačítka Dokončit pro PR.

    • Dokončeno: Dokončete žádost o přijetí změn a sloučíte změny do cílové větve.
    • Nastavit automatické dokončování: Pokud máte zásady větve, nakonfigurujte pull request tak, aby se dokončil a sloučil, jakmile budou splněny všechny požadované zásady větve.
    • Opustit: Uzavřít pull request bez sloučení změn.
  2. Na obrazovce Dokončit žádost o přijetí změn zadejte zprávu pro potvrzení sloučení a aktualizujte popis žádosti o přijetí změn.

    Dialogové okno pro uzavření pull requestu

  3. Vyberte některou z následujících možností:

    • Dokončete propojené pracovní položky po sloučení pro dokončení jakýchkoli propojených pracovních položek.

    • Odstranit <branch name> po sloučení a tím odstranit zdrojovou větev z žádosti o přijetí změn.

    • Squash se změní při slučování s sloučením žádosti o přijetí změn. Mějte na paměti, že pro cílovou větev se vytvoří nové potvrzení bez zachování historie potvrzení ze zdrojové větve.

    • Vynucujte zásady větve a povolte sloučení, aby se větev sloučila, pokud nevyhovuje všem zásadám větve. Tato možnost je dostupná pouze pokud máte oprávnění vyloučení z vynucování zásad.

      Poznámka

      Stávající zásady se stále vynucují. Pokud má například vaše větev momentálně zavedenou zásadu "squash merge only", musíte tuto zásadu upravit, abyste mohli použít jiné typy sloučení.

  4. Vyberte Dokončit sloučení.

Po dokončení sloučení se všechny propojené pracovní položky automaticky aktualizují k zobrazení dokončení PR.

Snímek obrazovky s propojenými pracovními položkami zobrazující dokončené pull requesty.

Rebase během dokončování pull requestu

V několika situacích není možné provést přepisování historie během dokončování pull requestu.

  • Pokud zásada v cílové větvi zakazuje použití rebase strategií, potřebujete oprávnění přepisovat zásady větve pro provedení rebase.
  • Pokud zdrojová větev pull requestu obsahuje zásady, nelze ji rebázovat. Rebasing by změnilo zdrojovou větev bez projití procesem schvalování zásad.
  • Pokud jste k řešení konfliktů při slučování použili rozšíření Merge Conflict, nemůžete rebasovat. Řešení konfliktů použitá u trojcestné sloučení jsou zřídka úspěšná nebo platná při opakovaném použití všech potvrzení žádosti o přijetí změn jednotlivě.

Ve všech těchto případech můžete svou větev znovu provést rebase lokálně a pak poslat upstream, nebo změny můžete squash sloučit, když dokončíte pull request (PR).

Problém s více spojovacími základnami

V některých případech má PR více než jednu správnou základnu pro sloučení, a tato situace může způsobit bezpečnostní problémy. Pokud mají soubory v žádosti o přijetí změn v různých základech sloučení různé verze, zobrazí se upozornění na více základů sloučení. Další informace a opravná opatření naleznete v tématu Více základů slučování.

Vyřešení konfliktů při slučování

Změny souboru ve vaší větvi můžou být v konfliktu se změnami v jiné větvi. Pokud není jasné, jak sjednotit změny, Git zobrazí soubory, které jsou v konfliktu, na stránce Přehled pull requestu. Než budete moci sloučit pull request nebo nastavit jeho automatické dokončení, musíte vyřešit všechny konflikty slučování mezi větví pull requestu a cílovou větví. Pokyny k řešení konfliktů při sloučení najdete v tématu Řešení konfliktů při slučování.

Snímek obrazovky znázorňující konflikty slučování na záložce Přehled PR.

Nastavte pull request na automatické dokončení

V rozevíracím seznamu Kompletace vyberte Nastavit automatické dokončování, abyste dokončili a sloučili změny žádosti o začlenění, jakmile podmínky splní všechny zásady větve. Po dokončení PR obdržíte e-mailové oznámení. Pokud konflikt nebo chyba brání dokončení PR, dostanete e-mail s oznámením o problému.

Poznámka

Možnost Nastavit automatické dokončování je dostupná v Azure Repos a TFS 2017 a novějších, pokud máte zásady větví. Pokud nevidíte možnost Nastavit automatické dokončování, nemáte žádné zásady větve. Další informace naleznete v tématu Zásady větví.

Ve výchozím nastavení žádost o přijetí změn (pull request) nastavená na automatické dokončení čeká pouze na povinné politiky. Na panelu Povolit automatické dokončování můžete také počkat na volitelné zásady.

Snímek obrazovky znázorňující změnu volitelné zásady na požadovanou na panelu Povolit automatické dokončování

Od TFS 2018 Update 2 se na stránce Přehled PR žádosti o přijetí změn zobrazí seznam nevyřízených kritérií zásad, na která PR čeká. Pokud jste na panelu Povolit automatické dokončování nastavili požadovanou zásadu, můžete ji nastavit zpět na volitelnou na stránce Přehled .

Pokud chcete automatické dokončování vypnout, vyberte Zrušit automatické dokončování .

Snímek obrazovky pull requestu v režimu automatického dokončování.

Snímek obrazovky pull requestu v režimu automatického dokončování.

Žádost o přijetí změn nastavená na automatické dokončování zobrazuje na stránce Žádosti o přijetí změn odznak „Automatické dokončování“.

Snímek obrazovky zobrazující požadavek na automatické doplnění v seznamu požadavků na změny.

Zrušení nebo reaktivace pull requestu

Pokud chcete opustit změny a svůj PR bez sloučení, vyberte z rozevíracího seznamu na tlačítku Dokončit možnost Opustit. Stále můžete zobrazit opuštěnou žádost o přijetí změn, která zůstává propojená s pracovními položkami.

Pokud chcete PR kdykoli znovu aktivovat, otevřete ho z karty Opuštěná v zobrazení Žádosti o přijetí změn a vyberte možnost Znovu aktivovat v pravém horním rohu.

Vrátit změny z dokončeného pull requestu

Chcete-li zrušit změny z požadavku na přijetí (PR), postupujte takto. Další informace naleznete v tématu Vrácení změn.

  1. Otevřete dokončený PR a vyberte Zpět. Tato akce vytvoří novou větev se změnami, které odvrátí PR v existující cílové větvi ve vašem úložišti.

  2. V podokně Vrátit zpět žádost o přijetí změn:

    1. V části Cílová větev vyberte větev, ve které chcete změny žádosti o přijetí vrátit.
    2. V části vyžadován název tématické větve můžete změnit název větve PR pro vrácení, pokud chcete.
    3. Vyberte Vrátit zpět.
  3. Na obrazovce Nový pull request vyberte Vytvořit.

  4. Sloučením nové PR dokončete revertování.

Poznámka

Větev vytvořená během tohoto vrácení změn obsahuje jediný commit, který vrátí všechny změny souboru z původního PR. Větev neobsahuje revert pro každý z commitů v původním PR.

Další kroky