
Jak používat git rebase
Proč a jak používat git rebase pro přehlednou historii v Gitu.
Při práci ve více lidech s versovacím nástrojem Git je prakticky nevyhnutelný stav, kdy vývoj probíhá paraelně ve více větvích. V extrémním případě potom ve větvích různě od sebe odvozených.
Např. první feature branch odvozená z hlavní main větve, ze které vychází další feature branch.
Příkaz git rebase (popř. git merge) se potom hodí pro synchronisaci větví mezi sebou, aby pořád vycházely z aktuálního mainu.
Merge vs. rebase
Obecně celkem platí, že git merge používají dvě skupiny lidí:
- lidé, co moc nerozumí Gitu,
- lidé, co neřeší hezkou historii commitů
Hezká historie souvisí i s vytvářením smysluplných commitů.
Jsou i lidé, co se rebase bojí. Přitom pro to moc není důvod – použití je dost jednoduché.
Základní rebase
Běžné použití je následovné:
Nejprve se stáhne aktuální stav:
git fetch
Do aktuální feature větve se dostanou nové commity prostým:
git rebase origin/main
Co se stane:
- Git najde poslední společný commit obou větví.
- Dočasně uloží všechny commity z
featurevětve. - Přesune
featurevětev na konecmainvětve. - Postupně aplikuje uložené commity jeden po druhém.
Výsledkem je lineární historie, kde všechny commity z feature větve následují po commitech z main větve.
Nezbývá než změny pushnout. Je zde potřeba uvést přepínač force, protože se změnila historie.
git push -f
Případně jde rebase naklikat ve VS Code:

Rebase --onto
Příkaz git rebase --onto se hodí pro případy, kdy moje větev vychází z větve, na které pracuje někdo jiný. A ten tam mění historii. To se obecně nepovažuje za dobrý postup, ale s rebase --onto to není problém.
git rebase --onto origin/cizi-vetev HEAD~
Tento příklad vezme můj poslední commit (HEAD~) a umístí ho nad celou cizí větev. Starší commity se ignorují, takže nehrozí řešení nesmyslných konfliktů.
Interaktivní rebase
Interaktivní rebase je mocný nástroj pro úpravu historie:
git rebase -i HEAD~3
Otevře se editor s možnostmi:
pick– ponechat commitreword– změnit commit messageedit– upravit commitsquash– sloučit s předchozímfixup– sloučit a zahodit messagedrop– smazat commit
Řešení konfliktů
Při rebase mohou nastat konflikty. Git oznámí konflikt a zastaví rebase. Po vyřešení:
git add <conflicted-files>
git rebase --continue
Nebo můžete rebase zrušit:
git rebase --abort
Dobré praktiky
- Pravidelně rebaseovat s hlavní větví. Minimalisuje se tím nepěkné překvapení po dokončení úkolu s řešením hromady konfliktů.
- Mít
mainvětev nastavenou jako protected. Jestliže se používá force push, je jen otázka času, kdy se člověk splete, a pustí to nadmainvětví. - Nepoužívat force push do větví, kde pracuje více lidí. Nebo nepracovat v jedné větvi ve více lidech, ale řešit to další odvozenou větví a merge/pull requestem.
Závěr
git rebase je nástroj pro vytvoření čisté a lineární historie. Umožňuje přesunout commity na novou základnu a upravit historii před publikováním. Je to alternativa k merge, která zachovává přehlednou historii, ale vyžaduje opatrnost při používání na veřejných větvích.
Související články
Checklist věcí, na které se při přechodu na nový iPhone zapomíná
Na co se nejčastěji zapomíná při migraci na nový iPhone? Bankovní aplikace, messengery, eGovernment služby a další aplikace.
Google Antigravity: Nová AI vývojářská platforma
Google představil Antigravity - vývojářskou platformu s AI agenty poháněnou modely Gemini 3, Claude Sonnet a GPT-OSS.
Windows 10 bez podpory: Jaké máte možnosti
Podpora Windows 10 skončila 14. října 2025. Zjistěte, jaké možnosti máte.
Generování QR kódu
Co je to QR kód a jak ho okamžitě vytvořit pomocí jednoduchého online generátoru.