Git

Ako vybrať čerešňu v Gite

Ako vybrať čerešňu v Gite
git cherry pick je funkcia zlúčenia do Gitu. Ale je malý rozdiel v git cherry pick a git merge. Iný je aj prípad použitia. Pozrime sa, ako najskôr funguje git merge, a potom to porovnajme s git cherry pick. Takto pochopíte, kedy použiť git merge a kedy použiť git cherry pick.

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čítanie

Teraz 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.

Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...
Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...