Git Cherry Pick

git cherry-pick je výkonný příkaz, který umožňuje vybrat libovolné revize systému Git pomocí odkazu a připojit je k aktuálnímu pracovnímu HEAD. Cherry picking je akt výběru revize z větve a jejího použití na jinou větev. git cherry-pick může být užitečný při vracení změn. Řekněme například, že je revize omylem provedena do nesprávné větve. Můžete se přepnout do správné větve a revizi cherry-picknout tam, kam má patřit.

Kdy použít git cherry pick

git cherry-pick je užitečný nástroj, ale ne vždy je to nejlepší postup. Cherry picking může způsobit duplicitní revize a v mnoha scénářích, kde by cherry picking fungoval, se místo něj dává přednost tradičnímu slučování. S tím, že git cherry-pick je užitečný nástroj pro několik scénářů…

Týmová spolupráce.

Často se stává, že tým najde jednotlivé členy, kteří pracují na stejném kódu nebo v jeho okolí. Možná má nová funkce produktu backendovou a frontendovou komponentu. Může existovat nějaký sdílený kód mezi to dvěma produktovými sektory. Možná vývojář backendu vytvoří datovou strukturu, kterou bude muset využívat i frontend. Vývojář frontendu by mohl pomocí git cherry-pick vybrat revizi, ve které byla tato hypotetická datová struktura vytvořena. Tento výběr by umožnil vývojáři frontendu pokračovat v postupu na své straně projektu.

Opravy chyb

Při objevení chyby je důležité co nejrychleji dodat opravu koncovým uživatelům. Jako příklad scénáře uveďme, že vývojář začal pracovat na nové funkci. Během vývoje této nové funkce zjistí již existující chybu. Vývojář vytvoří explicitní revizi opravující tuto chybu. Tuto novou opravnou revizi lze cherry-picknout přímo do větve master, aby se chyba opravila dříve, než ovlivní další uživatele.

Vrácení změn a obnovení ztracených revizí

Někdy se může stát, že větev feature zastará a nebude sloučena do master. Někdy může být požadavek na stažení uzavřen bez sloučení. Systém Git tyto revize nikdy neztratí a pomocí příkazů jako git log a git reflog je lze najít a cherry picking je vrátit zpět do života.

Jak použít git cherry pick

Pro demonstraci použití příkazu git cherry-pick předpokládejme, že máme repozitář s následujícím stavem větve:

 a - b - c - d Master
\
e - f - g Feature

git cherry-pick Použití je přímočaré a lze jej provést takto:

git cherry-pick commitSha

V tomto příkladu commitSha je odkaz na revizi. Odkaz na revizi můžete najít pomocí git log. V tomto příkladu jsme vytvořili řekněme, že jsme chtěli použít revizi `f` v master. Nejprve se ujistíme, že pracujeme ve větvi master.

git checkout master

Poté provedeme cherry-pick následujícím příkazem:

git cherry-pick f

Po provedení bude naše historie systému Git vypadat takto:

 a - b - c - d - f Master
\
e - f - g Feature

Revize f byla úspěšně vybrána do větve master

Příklady příkazu git cherry pick

git cherry pick lze také předat některé možnosti provedení.

-edit

Předání volby -edit způsobí, že se git před provedením operace cherry pick zeptá na zprávu o revizi

--no-commit

Volba --no-commit provede cherry pick, ale místo provedení nové revize přesune obsah cílové revize do pracovního adresáře aktuální větve.

--signoff

Volba --signoff přidá na konec zprávy o revizi cherry-pick podpisový řádek ‚signoff‘

Kromě těchto užitečných voleb git cherry-pick akceptuje také různé volby strategie slučování. Více informací o těchto volbách najdete v dokumentaci ke strategiím slučování v systému git.

Systém git cherry-pick navíc přijímá také vstupní volby pro řešení konfliktů při slučování, což zahrnuje volby: --abort --continue a --quit Tyto volby jsou podrobněji popsány v souvislosti s git merge a git rebase.

Shrnutí

Cherry picking je výkonný a pohodlný příkaz, který je neuvěřitelně užitečný v několika scénářích. Cherry picking by se neměl zneužívat místo příkazů git merge nebo git rebase. Příkaz git log je nutný k tomu, aby pomohl najít revize, které je třeba cherry picknout.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.