Pushnout — co to je, jak funguje git push a kdy je potřeba

Autor: IT Sectr Publikováno: 2026-08-01 Doba čtení: 6 min

Pushnout znamená odeslat lokální commity do vzdáleného repozitáře Git, čímž se zpřístupní ostatním členům týmu. Po pushi se změny objeví na GitHub, GitLab nebo Bitbucket. Podle GitHub Octoverse 2024 je denně na platformu pushnuto více než 10 milionů commitů. Git push je klíčová akce pro synchronizaci práce v distribuovaném týmu.

Hlavní body

  • Pushnout — odeslat lokální commity do vzdáleného repozitáře
  • Po pushi se změny stanou viditelnými pro celý tým
  • Hlavní platformy — GitHub, GitLab, Bitbucket
  • Bezpečný push — pouze do feature větví, ne přímo do main
  • Pre-push hooky — automatická kontrola kódu před odesláním

Co je push v Gitu

Git push je příkaz, který přenáší commity z lokálního repozitáře do vzdáleného. Na rozdíl od commitu, který ukládá změny pouze na lokálním počítači vývojáře, push tyto změny publikuje pro celý tým. Push je povinný krok před vytvořením Pull Requestu a nasazením.

Architektura Gitu předpokládá, že každý vývojář pracuje ve svém vlastním lokálním repozitáři. Commity se vytvářejí lokálně a hromadí se, dokud se vývojář nerozhodne je pushnout. To dává svobodu: můžete dělat mnoho lokálních commitů, experimentovat a přepisovat historii bez ovlivnění kolegů.

bash
# Push do origin remote, main větve
git push origin main

# Push aktuální větve do remote s upstream
git push -u origin feature/new-dashboard

# Push všech větví s odpovídajícími názvy
git push --all origin

# Force push s lease (bezpečný force push)
git push --force-with-lease

Po pushi vzdálený repozitář aktualizuje refs (reference na větve) tak, aby ukazovaly na nové commity. Ostatní vývojáři mohou tyto změny získat pomocí git pull nebo git fetch. Právě tato výměna commitů tvoří základ kolaborativního vývoje.

Jak funguje git push

Příkaz git push porovnává lokální a vzdálené větve a přenáší pouze chybějící commity. Git neposílá všechny soubory znovu — přenáší pouze deltu, což dělá push rychlým i u velkých repozitářů. Git protokol používá smart transfer, který minimalizuje objem přenášených dat.

Pokud vzdálená větev obsahuje commity, které lokálně neexistují, push bude odmítnut. Toto je ochranný mechanismus zabraňující ztrátě změn. V takové situaci by měl vývojář nejprve provést git pull, sloučit změny a teprve poté pushnout znovu. Alternativou je force push, který přepíše vzdálenou větev, ale musí být používán opatrně.

PříkazAkceKdy použít
git pushstandardní push do sledované větveběžné odesílání změn
git push -upush s nastavením upstreamprvní push nové větve
git push --force-with-leasebezpečný force pushpo rebase vlastní větve
git push --forcevynucený pushpouze pokud jste si jisti, že nehrozí kolize
git push --deletesmazání vzdálené větvevyčištění po sloučení větve

Porozumění vzdáleným repozitářům je klíčem ke správnému pushování. Obvykle se používá origin — výchozí název vzdáleného repozitáře. Příkaz git remote -v zobrazuje seznam vzdálených repozitářů a jejich URL. Lze přidat několik remote (např. origin pro hlavní repozitář a upstream pro fork).

Kdy pushnout změny

Základní pravidlo: pushovat by se mělo po každé logicky dokončené fázi práce. Pokud vývojář dokončil úkol nebo jeho část — je čas pushnout. Nicméně pushování nedokončené práce, která rozbíjí build, se nedoporučuje. Nerozbitý build je minimální požadavek pro push do jakékoli větve.

V týmovém vývoji je přijat následující rytmus: ráno — git pull pro získání změn kolegů, během dne — několik commitů a jeden nebo dva pushy, večer — finální push všech dokončených úkolů. Čím častěji vývojář pushuje, tím menší je riziko konfliktů při slučování větví a tím transparentnější je postup práce.

  • Po dokončení úkolu — commitnout a pushnout konečné řešení do feature větve
  • Před odchodem — pushnout nedokončenou práci do feature větve (ne do main!)
  • Před vytvořením PR — ujistit se, že všechny commity jsou pushnuty a dostupné pro review
  • Po rebase — pushnout s --force-with-lease do své feature větve

Pravidla bezpečného pushování

Bezpečný push je soubor pravidel zabraňujících ztrátě dat a konfliktům v týmu. První a nejdůležitější pravidlo: nikdy nepushujte přímo do main nebo master větve, pokud v projektu není nakonfigurováno přímé nasazení. V moderních týmech je ochrana main větve konfigurována na úrovni GitHub branch protection.

Druhé pravidlo: před pushem se synchronizujte se vzdálenou větví. Proveďte git pull --rebase, abyste se vyhnuli merge commitu při slučování. To zjednodušuje historii a činí ji lineární. Pokud je push odmítnut — nepoužívejte holý force push, ale nejprve zjistěte, jaké commity se objevily ve vzdálené větvi.

Třetí pravidlo: nakonfigurujte pre-push hooky, které automaticky spouštějí testy a linter před odesláním. Pokud testy selžou — push je zablokován. Takové hooky se konfigurují přes Husky nebo Git hooks (soubor pre-push v .git/hooks).

Čtvrté pravidlo: nepushujte velké binární soubory. Git není určen k ukládání binárních artefaktů — nafukují repozitář a zpomalují operace. Pro velké soubory se používá Git LFS (Large File Storage). Pokud byl binární soubor již pushnut a dostal se do historie, musí být odstraněn pomocí git filter-branch.

Co dělat, když push neprojde

Nejčastější příčinou neúspěšného pushování — vzdálená větev obsahuje commity, které lokálně neexistují. To se stane, když jiný vývojář pushnul své změny do stejné větve. Řešení: proveďte git pull, vyřešte případné konflikty a zopakujte push.

bash
# Push odmítnut — nejprve fetch a rebase
git fetch origin
git rebase origin/main
# Vyřešit konflikty, poté:
git push --force-with-lease

# Nebo jednoduše sloučit vzdálené změny
git pull origin main
git push

Druhá příčina — nedostatek práv k zápisu do větve. Pokud je main větev chráněna pravidlem branch protection, přímé pushy jsou zakázány. Řešení: pushujte do feature větve a vytvořte Pull Request. Nastavení ochrany jsou obvykle spravována přes GitHub settings nebo GitLab protected branches.

Třetí příčina — problémy s autentizací. Zastaralé přihlašovací údaje, přechod na SSH nebo změna personal access tokenu. Řešení: zkontrolujte remote URL (git remote -v) a aktualizujte přihlašovací údaje. Od roku 2021 GitHub zrušil autentizaci heslem pro HTTPS — používá se osobní token nebo SSH klíč.

Často kladené otázky

Co znamená pushnout v Gitu?

Pushnout znamená odeslat lokální commity z repozitáře vývojáře na vzdálený server (GitHub, GitLab). Po pushi se změny stanou dostupnými pro tým, objeví se v Pull Requestu a mohou být nasazeny. Push je závěrečná fáze lokální práce s kódem před týmovou kolaborací.

Jaký je rozdíl mezi push a commit?

Commit ukládá změny lokálně, v repozitáři vývojáře. Push odesílá tyto lokální commity na vzdálený server. Můžete udělat mnoho commitů bez pushování, ale aby kolegové viděli změny, musíte pushnout. Commit — uložení, push — publikace.

Co dělat, když je git push odmítnut?

Push je odmítnut, pokud vzdálená větev obsahuje commity, které lokálně neexistují. Řešení: proveďte git pull (nebo git fetch + git rebase), sloučte změny a zopakujte push. Pokud pracujete ve své vlastní feature větvi a jste si jisti změnami, použijte git push --force-with-lease.

Lze již provedený push zrušit?

Ano, ale opatrně. Použijte git revert <commit-hash> — vytvoří commit, který vrací změny. Poté pushněte nový commit. Pokud potřebujete odstranit commity z historie, použijte git reset + git push --force-with-lease, ale pouze ve své vlastní feature větvi. git revert je bezpečná volba pro sdílené větve.

Proč je důležité pushovat každý den?

Pravidelný push zabraňuje ztrátě dat při poruše lokálního počítače, snižuje konflikty při slučování a dává týmu přehled o postupu práce. Pokud vývojář nepushuje týden, jeho změny se mohou výrazně odchýlit od main větve, což vede k složitým konfliktům při mergování.

Shrnutí

  • Pushnout — odeslat lokální commity do vzdáleného repozitáře pro tým
  • Rozdíl od commitu — commit ukládá lokálně, push publikuje na serveru
  • Ochrana main — pushovat pouze do feature větví, do main přes PR
  • Force push — používat pouze s --force-with-lease ve vlastních větvích
  • Pre-push kontroly — testy a lintery přes Git hooks nebo Husky
  • Frekvence — pushovat po každé logicky dokončené změně
  • Problémy — při odmítnutí push nejprve pull nebo rebase, pak znovu

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

Prodiskutovat projekt

Přečtěte si také