Řekněme, že máte úložiště Git. Pracujete na mistr větev a udělali jste pár závazků (A, B a C) na mistr větev také.
A najednou máte skvělý nápad. Takže vytvoříte další větev Newidea. Poté jste začali dělat závazky (E, F a G) tam.
Udělali jste také několik změn v mistr znovu větev a přidal nové potvrzení H.
Pokud je váš nový nápad úspěšný, možná budete chtít sloučit Newidea větev do mistr větev. Řekněme, že jste to spojili. Vytvoří nové potvrzení Já jak vidíte na obrázku níže. Nová revize bude obsahovat vše (všechny změny v revizích E, F, a G) pobočky Newidea.
Řekněme, že nechcete sloučit všechny závazky pobočky Newidea do mistr větev. Chcete pouze sloučit změny (pouze změny rozdílu) v potvrzení F do mistr větev. To je místo, kde přichází výběr git cherry. Git cherry pick vám to umožní. Právě najdete hash potvrzení, které chcete vybrat, a aplikujte jej na požadovanou větev. Velmi jednoduché.
V tomto článku vám ukážu, jak vybrat třešeň v Gitu. Pojďme tedy začít.
Pracovní postup Git Cherry Pick:
V této části se chystám nastavit úložiště Git takovým způsobem, abyste pochopili, proč se používá git cherry pick a jak cherry pick v Git.
Nejprve inicializujte prázdné úložiště Git demo cherry-pick / jak následuje:
$ git init cherry-pick-demo
Nyní přejděte do úložiště následujícím způsobem:
$ cd cherry-pick-demo /
Nyní vytvořte hlavní.C soubor s následujícím obsahem:
Nyní přidejte soubor do pracovní oblasti následujícím způsobem:
$ git přidat .
Nyní proveďte změny následujícím způsobem:
$ git commit -m 'initial commit'
Nyní vytvořte .gitignore soubor s následujícím obsahem:
Přidejte soubor do pracovní oblasti.
$ git přidat .
Potvrdit změny:
$ git commit -m 'přidáno .soubor gitignore '
Jak vidíte, nyní mám v mém 2 závazky mistr větev.
$ git log - online
Nyní chci poslat své místní úložiště Git na vzdálený server Git, aby na tomto úložišti mohli pracovat další lidé. Zde můžete také použít GitHub. Zde použiji místní server SSH.
Přidejte tedy adresu URL vzdáleného úložiště Git následujícím způsobem:
$ git vzdálené přidání původu git @ git.linuxhint.com: ~ / cherry-pick-demo.sakra
Nyní zatlačte na mistr větev do vzdáleného úložiště Git následujícím způsobem:
$ git push origin master
Nyní řekněme bob chce do projektu přispět. Naklonoval tedy úložiště Git do svého počítače.
$ git klon git @ git.linuxhint.com: ~ / cherry-pick-demo.git myproject
Nyní Bob přejde do svého adresáře projektu.
$ cd myproject /
Má také 2 závazky, které jsem přidal.
$ git log - online
Nyní Bob vytváří a test pobočka vyzkoušet jeho nápady.
$ git checkout -b test
Rozhodne se změnit návratovou hodnotu konstantou EXIT_SUCCESS z stdlib knihovna.
Přidá změny do pracovní oblasti.
$ git přidat .
Potvrdí změny.
$ git commit -m 'použit návratovou hodnotu EXIT_SUCCESS namísto 0'
Nyní se rozhodne použít funkci printMessage () pro tisk zprávy. Píše tedy funkci.
Znovu provede změny.
$ git přidat .$ git commit -m 'přidaná funkce printMessage ()'
Poté bob použije funkci v programu.
Znovu provede změny.
$ git přidat .$ git commit -m 'použitá funkce printMessage () k tisku zprávy'
Nyní má bob v test větev.
Nyní Bob tlačí testovací větev do vzdáleného úložiště Git.
$ git push origin test
Nyní vám Bob zavolá a řekne vám o úžasných změnách, které provedl. Takže jste načetli změny do vzdáleného úložiště Git do svého místního úložiště.
$ git načteníNyní vidíte novou větev původ / test.
Také jste našli 3 nové závazky, které Bob udělal.
$ git log - online původ / test
Nyní byste chtěli vědět, jaké změny Bob provedl.
$ git log -p původ / test
Rozhodnete se nenahradit návratovou hodnotu EXIT_SUCCESS jako Bob.
Líbí se vám koncept použití funkce k tisku zpráv.
Také se vám líbí toto spáchání.
Chcete tedy sloučit 2 ze 3 spáchaných bobů. Pokud jste ke sloučení testu větve použili git merge, použijí se všechny 3 revize. Ale s funkcí git cherry pick můžete sloučit pouze závazky, které se vám líbí.
Všimněte si, že když se v Gitu rozhodnete potvrdit třešňový výběr, vždy začnete s nejstarším odevzdáním a postupně přejdete k nejnovějšímu.
Předtím jsem si vybral třešničku hlavní.C soubor vypadá následovně.
Pojďme si třešničkou vybrat nejstarší ze dvou revizí 9a4e532 takto:
$ git cherry-pick 9a4e532
Sloučení konfliktu! To se může stát.
Nyní otevřete hlavní.C soubor a opravit konflikt sloučení.
Konečný soubor by měl vypadat následovně.
Nyní přidejte změny do pracovní oblasti.
$ git přidat.
Nyní proveďte změny následujícím způsobem:
$ git cherry-pick - pokračovat
POZNÁMKA: Můžete také použít git commit i tady. Je to na tobě. preferuji git cherry-pick - pokračovat protože automaticky použije zprávu o potvrzení z potvrzení, které vybírám třešeň.
Nyní sem zadejte zprávu o potvrzení a soubor uložte.
Mělo by být přidáno nové potvrzení.
Nyní cherry vyberte další potvrzení následujícím způsobem:
$ git cherry-pick 08ba5e7
Žádný konflikt sloučení. Skvělý! Nové potvrzení by mělo být přidáno automaticky.
Jak vidíte, dostanu přesně to, co jsem chtěl. Sloučil jsem pouze závazky, které jsem potřeboval.
Tak si vyberete třešně v Gitu. Děkujeme za přečtení tohoto článku.