Pull Request (PR) — je mechanismus spolupráce v Git, který umožňuje vývojáři upozornit tým na připravenost změn ke sloučení do hlavní větve. PR zahrnuje diskusi o kódu, automatické CI/CD kontroly a proces code review. Podle GitHub Docs, 2026 je měsíčně na platformě vytvořeno více než 150 milionů Pull Requestů.
Hlavní body
Pull Request (PR) — je formální žádost o začlenění změn z jedné větve do druhé v rámci distribuovaného systému správy verzí. PR je ústředním prvkem společné vývoje na platformách GitHub, GitLab a Bitbucket, který spojuje diskusi o kódu, automatické testování a proces schvalování změn.
Název „Pull Request“ odráží podstatu operace: vývojář žádá (request) vlastníka repozitáře, aby „vytáhl“ (pull) jeho změny. Termín zavedl GitHub v roce 2008 — před tím existoval podobný mechanismus ve formě patchů a merge request (termín GitLab). Dnes je PR de facto standardem pro týmový vývoj s Gitem.
Podle údajů GitHub Octoverse, 2025 vyžaduje 89 % open-source projektů vytvoření PR pro provedení změn. V podnikovém vývoji tento ukazatel dosahuje 95 %. PR se stal nejen technickým nástrojem, ale součástí vývojářské kultury: prostřednictvím PR probíhá předávání znalostí, odhalování chyb a odsouhlasování architektonických rozhodnutí.
Typický PR se skládá z nadpisu, popisu, seznamu změněných souborů (diff), komentářů recenzentů a stavů CI kontrol. Každý PR je vázán na konkrétní zdrojovou a cílovou větev a po sloučení může být automaticky odstraněn.
Vytvoření PR začíná publikováním feature větve ve vzdáleném repozitáři. Po pushi vývojář otevře PR přes rozhraní platformy nebo přes CLI (gh, glab). Podívejme se na proces na příkladu GitHubu.
Prvním krokem je pushnout feature větev do vzdáleného repozitáře a vytvořit Pull Request přes webové rozhraní nebo příkazový řádek.
# Vytvoření a push feature větve
git checkout -b feature/biometric-auth
git add src/auth/
git commit -m "feat: add biometric authentication"
git push -u origin feature/biometric-auth
# Vytvoření PR přes GitHub CLI
gh pr create --title "feat: add biometric authentication" \
--body "Implements fingerprint and face recognition login.
Closes #142" \
--base develop
Po vytvoření PR GitHub automaticky spouští CI pipeline (GitHub Actions), kontroluje konflikty s cílovou větví a zve recenzenty. Šablonu popisu PR lze nastavit pomocí .github/PULL_REQUEST_TEMPLATE.md, aby všechny PR obsahovaly povinné sekce: účel, změny, testování, související úkoly.
Kvalitní popis PR zahrnuje: odkaz na úkol (issue/ticket), stručný popis změn, návod k testování a seznam souvisejících změn. Štítky (bug, feature, refactoring) pomáhají kategorizovat PR, zatímco assignees a reviewers jsou přiřazováni automaticky přes CODEOWNERS.
# Přiřazení recenzentů přes CODEOWNERS (soubor v kořenu repozitáře)
# Příklad .github/CODEOWNERS:
# src/auth/ @team-auth @senior-dev
# src/api/ @team-backend
# *.kt @kotlin-team
# Vytvoření PR s přiřazením recenzentů přes gh cli
gh pr create --reviewer "team-auth" --label "feature"
CODEOWNERS — standardní mechanismus GitHub/GitLab pro automatické přiřazování recenzentů podle změněných souborů. Například jakékoli změny v adresáři src/auth/ automaticky přiřazují jako recenzenty team-auth a senior-dev. To urychluje proces a zajišťuje, že správní lidé uvidí PR.
Po obdržení komentářů recenzenta vývojář provádí opravy ve stejné feature větvi a pushuje nové commity — PR se automaticky aktualizuje. Je důležité nepřepisovat historii (rebase) v publikované feature větvi, pokud je PR již otevřeno, protože to narušuje odkazy na konkrétní commity v komentářích.
# Provedení změn podle komentářů recenzenta
git checkout feature/biometric-auth
# opravit kód
git commit -m "fix: handle biometric timeout per review"
git push
# PR se automaticky aktualizuje
# Po schválení — sloučit PR přes rozhraní GitHub
Code review — ústřední prvek Pull Requestu. Recenzent kontroluje změny z hlediska správnosti, stylu kódu, bezpečnosti a architektonické konzistence. Kvalitní recenze nejen předchází chybám, ale také šíří znalosti o kódové základně v rámci týmu.
Engineering Practices společnosti Google (2025) doporučují následující zásady code review: recenzent musí rozumět kontextu změn, dávat konkrétní doporučení místo obecných poznámek a oddělovat technické a stylistické komentáře. Doba kontroly by neměla přesáhnout 24 hodin od vytvoření PR.
Pro vývoj mobilních aplikací zahrnuje code review specifické kontroly: kompatibilitu s targetSdk, správné zpracování lifecycle (Android) / view lifecycle (iOS), absenci úniků paměti (LeakCanary, Instruments), podporu tmavého režimu a lokalizaci. Tyto kontroly lze automatizovat pomocí linterů a Detekt/ktlint.
Platformy PR podporují tři typy komentářů: obecné (k celému PR), řádkové (ke konkrétnímu řádku kódu) a návrhy (suggestions s kódem k nahrazení). Návrhy umožňují aplikovat změnu jedním kliknutím, což urychluje proces a snižuje počet iterací.
Poté, co jsou všechny komentáře vyřešeny a CI kontroly úspěšně dokončeny, recenzent odešle schválení (Approved). PR může být sloučen. GitHub a GitLab podporují pravidla ochrany větví: povinný počet schválení, povinné CI kontroly, zákaz push do main bez PR. Pro mobilní projekty zahrnuje ochrana větve také kontrolu sestavení: PR nelze sloučit, pokud se aplikace nezkompiluje (gradle build failed / xcodebuild failed).
Merge konflikty v Pull Requestu jsou běžnou situací při aktivní týmové práci. Platformy nabízejí řešení konfliktů přes webové rozhraní (pro jednoduché konflikty) nebo doporučují lokální řešení. GitHub Actions automaticky kontroluje možnost sloučení při každém pushi do feature větve a označí PR jako konfliktní, pokud sloučení není možné.
Efektivní Pull Requesty urychlují code review a snižují počet chyb. Studie SmartBear (2025) ukázala, že PR o velikosti do 200 řádků kódu obdrží 2krát více věcných komentářů než PR o velikosti nad 1000 řádků, přičemž doba recenze se zkracuje 3krát.
Další postupy: nevytvářejte PR v pátek večer (nikdo neudělá recenzi do pondělí), žádejte recenzi od 1–2 osob (více zpomaluje proces bez zvýšení kvality), používejte squash merge pro kompresi historie před sloučením. Pro mobilní projekty se také doporučuje přidat do popisu PR odkaz na testovací sestavení (Firebase App Distribution / TestFlight), aby recenzent mohl zkontrolovat změny ve fungující aplikaci.
Hlavní platformy pro práci s Pull Request jsou GitHub, GitLab a Bitbucket. Přes společnou koncepci má každá své specifika, která je třeba zvážit při výběru nástroje pro tým.
| Charakteristika | GitHub | GitLab | Bitbucket |
|---|---|---|---|
| Název | Pull Request | Merge Request | Pull Request |
| CI/CD | GitHub Actions | GitLab CI/CD | Bitbucket Pipelines |
| Code owners | CODEOWNERS | CODEOWNERS | CODEOWNERS |
| Auto-merge | Ano | Ano | Ano |
| Squash merge | Ano | Ano | Ano |
| Specifikum | Největší komunita | Self-hosted + CI/CD | Integrace Jira |
GitHub — nejpopulárnější platforma s největší komunitou, Actions pro CI/CD a rozsáhlým ekosystémem aplikací (GitHub Marketplace). GitLab se vyznačuje vestavěným CI/CD a možností plného self-hosted nasazení. Bitbucket je úzce integrován s Jirou a ekosystémem Atlassian, populární v podnikovém prostředí.
Pro vývoj mobilních aplikací je výběr platformy často určen možnostmi CI/CD: GitHub Actions podporuje macOS runnery pro sestavení iOS, GitLab má vestavěné runnery pro iOS/Android, Bitbucket se dobře integruje s Firebase Test Lab. Bez ohledu na platformu zůstává proces PR stejný: větev → recenze → CI → merge.
Často kladené otázky
Pouze v názvu. GitHub používá termín Pull Request, GitLab — Merge Request (MR). Funkčnost je identická: žádost o sloučení změn s diskusí, recenzí a CI kontrolami. Bitbucket, stejně jako GitHub, používá Pull Request.
Optimálně 1–2. Jeden recenzent kontroluje logiku a architekturu, druhý — bezpečnost nebo specifickou oblast (UI, databáze). Větší počet recenzentů zpomaluje proces bez výrazného zvýšení kvality.
Technicky ano, pokud pravidla ochrany větve nevyžadují schválení. Nicméně je to špatná praxe: i zkušení vývojáři přehlížejí chyby. Výjimky — hotfix s následnou recenzí, triviální změny (překlepy, verze závislostí).
Vyřešte konflikt pomocí merge nebo rebase. GitHub a GitLab nabízejí webové rozhraní pro řešení jednoduchých konfliktů. Pro složité — proveďte git merge target-branch lokálně, vyřešte konflikt a pushněte změny.
Ano, to je nejlepší praxe. GitHub a GitLab nabízejí automatické smazání větve po merge. Smazání zabraňuje hromadění větví a zajišťuje, že vývojáři nebudou náhodně pracovat v již sloučené větvi.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také