Povedzme, že máte úložisko Git. Pracuješ na pán pobočka a urobili ste niekoľko záväzkov (A, B a C) na pán pobočka tiež.
Teraz máte zrazu skvelý nápad. Takže vytvoríte ďalšiu pobočku newidea. Potom ste začali robiť záväzky (E, F a G) tam.
Urobili ste tiež niekoľko zmien v priečinku pán znovu pobočka a pridaný nový commit H.
Ak je váš nový nápad úspešný, mali by ste zlúčiť newidea pobočka do pán pobočka. Povedzme, spojili ste to. Vytvorí sa nový záväzok Ja ako vidíte na obrázku nižšie. Nové potvrdenie bude obsahovať všetko (všetky zmeny v potvrdeniach E, F, a G) pobočky newidea.
Teraz povedzme, že nechcete zlúčiť všetky záväzky pobočky newidea do pán pobočka. Chcete iba zlúčiť zmeny (iba zmeny rozdielu) vo potvrdení F do pán pobočka. To je miesto, kde prichádza git cherry pick. Git cherry pick vám to umožní. Stačí nájsť hašovací príkaz, ktorý chcete vybrať, a použiť ho na požadovanú pobočku. Veľmi jednoduché.
V tomto článku vám ukážem, ako čerešňový výber v Gite. Takže poďme na to.
Pracovný postup Git Cherry Pick:
V tejto časti sa chystám nastaviť úložisko Git tak, aby ste pochopili, prečo sa používa git cherry pick a ako čerešňový výber v Gite.
Najskôr inicializujte prázdne úložisko Git ukážka čerešňového výberu / nasledovne:
$ git init cherry-pick-demo
Teraz prejdite do úložiska nasledovne:
$ cd cherry-pick-demo /
Teraz vytvorte hlavný.c súbor s nasledujúcim obsahom:
Teraz pridajte súbor do pracovnej oblasti nasledujúcim spôsobom:
$ git pridať .
Teraz vykonajte zmeny nasledovne:
$ git commit -m 'initial commit'
Teraz vytvorte .gitignore súbor s nasledujúcim obsahom:
Pridajte súbor do pracovnej oblasti.
$ git pridať .
Potvrdiť zmeny:
$ git commit -m 'pridané .súbor gitignore '
Ako vidíte, v mojom súbore mám teraz 2 záväzky pán pobočka.
$ git log - online
Teraz chcem presunúť svoje lokálne úložisko Git na vzdialený server Git, aby na tomto úložisku mohli pracovať iní ľudia. Môžete tu tiež použiť GitHub. Tu na to použijem lokálny server SSH.
Pridajte teda vzdialenú adresu URL úložiska Git nasledovne:
$ git vzdialené pridanie pôvodu git @ git.linuxhint.com: ~ / cherry-pick-demo.git
Teraz stlačte pán vetvu do vzdialeného úložiska Git nasledovne:
$ git push pôvodný majster
Teraz, povedzme bob chce do projektu prispieť. Naklonoval teda úložisko Git do svojho počítača.
$ git klon git @ git.linuxhint.com: ~ / cherry-pick-demo.git myproject
Teraz Bob prejde do svojho adresára projektu.
$ cd myproject /
Má tiež 2 záväzky, ktoré som pridal.
$ git log - online
Teraz Bob vytvorí a test pobočka vyskúšať jeho nápady.
$ git checkout -b test
Rozhodne sa zmeniť návratnú hodnotu konštantou EXIT_SUCCESS z stdlib knižnica.
Pridáva zmeny do pracovnej oblasti.
$ git pridať .
Potvrdí zmeny.
$ git commit -m 'použil návratovú hodnotu EXIT_SUCCESS namiesto 0'
Teraz sa rozhodne použiť funkciu printMessage () správu vytlačiť. Píše teda funkciu.
Opätovne zaväzuje zmeny.
$ git pridať .$ git commit -m 'pridaná funkcia printMessage ()'
Potom použije bob funkciu v programe.
Opätovne zaväzuje zmeny.
$ git pridať .$ git commit -m 'použitá funkcia printMessage () na vytlačenie správy'
Teraz má Bob v test pobočka.
Bob teraz posúva testovaciu vetvu do vzdialeného úložiska Git.
$ git push origin test
Teraz vám Bob zavolá a povie vám o úžasných zmenách, ktoré urobil. Takže ste načítali zmeny do vzdialeného úložiska Git do vášho lokálneho úložiska.
$ git načítanieTeraz vidíte novú pobočku pôvod / skúška.
Našli ste tiež 3 nové záväzky, ktoré urobil Bob.
$ git log - pôvod / test on-line
Teraz by vás zaujímalo, aké zmeny urobil Bob.
$ git log -p pôvod / test
Rozhodli ste sa nenahradiť návratovú hodnotu hodnotou EXIT_SUCCESS tak, ako to urobil Bob.
Páči sa vám koncept použitia funkcie na tlač správ.
Páči sa vám tiež toto spáchanie.
Takže chcete zlúčiť 2 z 3 záväzkov, ktoré urobil Bob. Ak ste na zlúčenie testu pobočky použili git merge, použijú sa všetky 3 potvrdenia. Ale s funkciou git cherry pick môžete zlúčiť iba tie záväzky, ktoré sa vám páčia.
Všimnite si, že keď čerešňový výber potvrdíte v Gite, vždy začínate s najstarším potvrdením a postupujete postupne k najnovšiemu.
Predtým som čerešňu vybral, hlavný.c súbor vyzerá nasledovne.
Teraz si čerešničkou vyberieme najstarší z 2 záväzkov 9a4e532 nasledovne:
$ git výber čerešní 9a4e532
Konflikt zlúčenia! Môže sa to stať.
Teraz otvorte hlavný.c súbor a opraviť konflikt zlúčenia.
Výsledný súbor by mal vyzerať nasledovne.
Teraz pridajte zmeny do pracovnej oblasti.
$ git pridať.
Teraz vykonajte zmeny nasledovne:
$ git cherry-pick - pokračovať
POZNÁMKA: Môžete tiež použiť git spáchať aj tu. Je to na vás. Ja radšej git cherry-pick -pokračovať pretože bude automaticky používať správu o potvrdení z potvrdenia, ktoré vyberám.
Teraz sem zadajte svoju správu o potvrdení a uložte súbor.
Mal by sa pridať nový záväzok.
Teraz čerešňa vyberte nasledujúci príkaz takto:
$ git výber čerešní 08ba5e7
Žiadny konflikt zlúčenia. Skvelé! Nový záväzok by sa mal pridať automaticky.
Ako vidíte, mám presne to, čo som chcel. Spojil som iba záväzky, ktoré som potreboval.
Takto si teda vyberiete čerešňu v Gite. Ďakujeme, že ste si prečítali tento článok.