Tipy & triky · Workflow · Všude · ~10 min týdně · 2 min čtení
git stash: odložte rozdělanou práci na později
Naposledy ověřeno:

Pracujete na nové funkci, kód je rozpůlený a nekompiluje se — a v tu chvíli přijde zpráva: „na produkci je chyba, hoď se na to hned“. Přepnout větev s rozdělanými změnami nejde čistě a commitovat polotovar se nechce. Přesně pro tuhle situaci má git příkaz stash: uklidí všechny necommitnuté změny do postranního šuplíku, pracovní adresář vrátí do čistého stavu — a až bude po požáru, jedním příkazem všechno vytáhnete zpět, přesně jak jste to opustili.
Jak na to
- Ve chvíli, kdy potřebujete odložit práci, spusťte
git stash— všechny změny ve sledovaných souborech (rozpracované i připravené ke commitu) se schovají a adresář je čistý. Nové, dosud nesledované soubory přibalíte přepínačem-u. - Teď můžete bez obav přepnout větev, opravit chybu, commitnout a vrátit se zpět na svou větev.
- Odloženou práci vrátíte příkazem
git stash pop— změny se obnoví a záznam ze šuplíku se smaže. Pokud chcete záznam pro jistotu zachovat, použijtegit stash apply. - Šuplík není jen jeden:
git stash listukáže všechny odložené balíčky. Aby se v nich dalo vyznat, ukládejte s popiskem —git stash push -m "rozdelany formular". Konkrétní balíček pak vrátíte třeba přesgit stash pop stash@{1}. - Co v šuplíku leží, prozradí
git stash show -p— vypíše změny jako diff, takže se před obnovením můžete podívat, co vlastně vracíte.
Vzorová situace
Vývojářka buduje nový formulář, v souborech má hodinu rozdělané práce. Kolega píše, že registrace na webu padá. Dřív by udělala commit „WIP nedokonceno nefunguje“, který pak v historii straší navěky, nebo by změny bolestivě kopírovala bokem. Teď: git stash push -m "formular", přepne na main, opraví, nasadí, přepne zpět, git stash pop — a pokračuje přesně tam, kde přestala. Historie zůstala čistá a nic se neztratilo.
Stash se hodí i na drobnosti: rychle vyzkoušet, jak se aplikace chová bez vašich změn, nebo si uklidit experiment, ze kterého možná nic nebude, ale mazat ho je škoda. Jen si dejte pozor, aby se ze šuplíku nestalo skladiště — balíčky, které v seznamu leží týdny, už nikdo nikdy nevrátí. Co má hodnotu, patří do commitu na vlastní větvi; stash je na hodiny a dny, ne na měsíce.
Co vám to přinese
Urgentní přerušení přestanou rozbíjet vaši práci — přepnutí kontextu je otázkou dvou příkazů a žádných kompromisů. Z historie zmizí polovičaté commity „WIP“ a „docasne“, které tam dřív vznikaly jen proto, že se práce potřebovala někam schovat. Souvisí s tipem commit zprávy pro budoucí já — oboje drží historii projektu čitelnou.
Chcete jít do hloubky? V příručce najdete kapitolu Základní systémy: inbox, priority, revize.
Podobné tipy
Zrychlete opakování kláves: kurzor poletí, mazání taky
Držení šipky nebo Backspace má rychlost, kterou jde nastavit. Dvě posuvky, které skoro nikdo nikdy neposunul — a psaní je hned svižnější.
Označte celý řádek jedním stiskem
Shift+End
Shift + End vybere text od kurzoru do konce řádku, Shift + Home na začátek. Bez tahání myší.
Slack: Ctrl+K skáče na kanál i kolegu
Ctrl+K
Rychlý přepínač najde kanál, zprávu i člověka na pár písmen. Nejdůležitější zkratka Slacku.
Pomohlo vám to?
Líbil se vám tip?
Každý týden posílám jeden takový do e-mailu. Dvě minuty čtení, hodiny úspor.
1 tip týdně · žádný spam · odhlášení jedním klikem