GIT Cherry-pick - Kedy a ako používať GIT Cherry-pick s príkladom?

Obsah:

Anonim

Úvod do GIT Cherry-pick

V tomto článku sa podrobne dozvieme o GIT Cherry-pick. Existuje veľa programátorov pracujúcich na rovnakom vývoji softvéru z rôznych kútov sveta. Ako potom spravovať kódy? Ako prinútia ostatných, aby pochopili, aké zmeny vykonali? Ako zaviazať kódy a udržiavať rôzne verzie? Ako zlúčiť kódy?

Na vyriešenie týchto problémov vstúpil GIT do sveta rozvoja. GIT je vynikajúci systém správy zdrojových kódov (SCM) a distribuovaný systém riadenia verzií. GIT vytvoril Linux Torvald, osoba, ktorá vyvinula Linuxové jadro. Je zrejmé, že ide o nástroj s otvoreným zdrojovým kódom, kde každý programátor môže prispieť k vytvoreniu softvéru z ľubovoľného miesta na svete.

GIT má veľa funkcií. Môže mať viac pobočiek. Vývojár môže písať kódy po vytvorení vlastnej pobočky v lokálnom systéme a zlúčiť ich s hlavnou vetvou alebo inými vetvami vzdialeného úložiska GIT.

Čo je GIT Cherry-pick?

Predstavte si, že projektová práca napíše scenár o histórii a vývoji mobilných telefónov. Takže na tom istom projekte pracuje veľa ľudí a všetci pracujú osobitne. Nakoniec sa však skript každého zkompiluje.

Teraz člen A píše o telefónoch Apple a zrazu si uvedomí, že to môže byť lepšie. Informoval o tom ostatných členov tímu, ktorí pracujú na tom istom projekte. Iný člen X mu povedal, že píše skript na telefónoch s Androidom a požiadal člena A, aby sa na to pozrel.

Potom sa člen A pozrel do skriptu spoluhráčov a zistil, že niektoré časti sú rovnaké a niektoré zmeny sú skutočne dobré. Preto tieto zmeny vybral a vložil do svojho vlastného scenára. To je to isté, čo v GIT nazýva cherry-pick v oblasti softvérového kódovania.

Git-cherry-pick je výkonný príkaz git a cherry-picking je proces na vyzdvihnutie potvrdenia z vetvy a jeho použitie v inej vetve. Jednoducho povedané, vývojári sa môžu dopúšťať svojich kódov vo viacerých odvetviach. Teraz mal jeden vývojár zaviazať svoje kódy do vetvy A, omylom sa však dopustil kódov do vetvy B. Tento čas cherry-pick môže prepnúť späť potvrdenia na správnu vetvu.

Pomocou príkazu nižšie (v systéme Unix) zistíte rôzne možnosti pre git-cherry-pick,

Command:

$man git-cherry-pick

Syntax príkazu cherry-pick,

syntaxe:

git cherry-pick (–edit) (-n) (-m parent-number) (-x)

Keď použijeme GIT Cherry-pick?

Git-cherry-pick je užitočným nástrojom, nie však vždy najlepšou praxou. git-cherry-pick je možné použiť v nasledujúcich scenároch,

  • Napraviť, keď došlo k náhodnému zaviazaniu v inej pobočke.
  • Preferované tradičné fúzie
  • Použiť zmeny v existujúcom záväzku.
  • Duplikát potvrdenia
  • Oprava chyby

Ako funguje GIT Cherry-pick?

Je potrebné vykonať chybu zistenú v kóde v produkčnom prostredí a opraviť. Akonáhle je zmena vykonaná a chyba je odstránená, teraz je čas priviesť túto zmenu kódu späť do vývojového prostredia tak, aby sa v budúcnosti v produkčnom prostredí chyba nevyskytovala znova a znova.

Prvou možnosťou je jednoduché zlúčenie git a je to ideálne riešenie, ak to funguje. V produkčnom prostredí sa však robia aj ďalšie zmeny, ktoré sa počas zlúčenia nemôžu vrátiť do vývojového prostredia. A v takom prípade je voľba čerešní správna.

Cherry-pick prináša tento záväzok, ktorý bol určený iba na opravu chýb. Nevyberá ostatné záväzky.

Tu je ilustrácia,

Obr. 1: G a H sú záväzky pobočky výroby. Odvetvie rozvoja A až F sa zaväzuje. Problém sa nachádza v odvetví Výroba. Oprava je vyvinutá v H commit, ktorá musí byť použitá v rozvojovej vetve, ale nemusí byť použitá commit G.

Obr. 2: Potvrdenie H je odteraz vybrané v vetve Rozvoj a výsledné potvrdenie je H '. Zmeny v záväzku G nie sú zahrnuté do vetvy rozvoj.

Ako používať GIT Cherry-pick s príkladom?

Predpokladajme, že máme dve vetvy (master a new_feature) (príkaz použitý na zobrazenie vetvy branch-git)

Zaviazali sme sa (Highlighted) omylom v vetve new_feature. (príkaz použitý na zobrazenie potvrdeného protokolu logs-git)

Mal však byť iba v hlavnej vetve. Najprv skopírujte zvýraznený SHA do poznámkového bloku.

Teraz použijeme príkaz git-cherry-pick na presunutie tohto záväzku na hlavnú vetvu, ale predtým musíme prepnúť na hlavnú vetvu (príkaz použitý na prepnutie checkout branch-git < branchname > )

(príkaz použitý git - cherry - pick < commit id > ) (rovnaký SHA by mal byť vložený, ktorý bol skopírovaný do poznámkového bloku skôr pomocou príkazu git cherry-pick)

Teraz vidíme, že rovnaké potvrdenie je k dispozícii v hlavnej vetve (príkaz used-git log)

Viac príkladov príkazov git cherry-pick nájdete v nižšie uvedenom odkaze,

https://git-scm.com/docs/git-cherry-pick

Dôležité veci na zapamätanie

Pri používaní cherry-pick a práci v tíme si musíte pamätať na tri veci.

1. štandardizácia správy o potvrdení: Je lepšie použiť štandardizáciu správy o potvrdení a -x, ak vyberáme z verejnej pobočky.

git cherry-pick -x

V budúcnosti sa zabráni zlúčeniu konfliktu.

2. skopírujte poznámky: Niekedy obsahujú čerešne poznámky a keď spustíme čerešne, poznámky sa neskopírujú. Preto je lepšie používať ho.

git notes copy

3. Viacnásobné potvrdenia vyberte, ak sú iba lineárne: Chceme vybrať viac potvrdení ako G, H (obr. 1), ak sú lineárne, použite iba príkaz uvedený nižšie,

git cherry-pick G^..H

záver

Predpokladajme, že chceme vyzdvihnúť konkrétny záväzok z inej vetvy a použiť ho pre aktuálnu vetvu. Tu sú odporúčané kroky,

1. Nájdite príkaz hash, ktorý je potrebné najprv vybrať.

2. Prejdite na cieľovú vetvu.

3. git cherry-pick -x

Vyriešte konflikty, ak k nim dôjde. Ak sú v pôvodnom potvrdení poznámky, je potrebné ich skopírovať.

git notes copy

Odporúčané články

Toto je sprievodca GIT Cherry-pick. Tu diskutujeme o jeho fungovaní a o tom, ako používať git cherry-pick s príkladmi podrobne. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Git Tools
  2. Terminológia Git
  3. Značka Git Checkout
  4. Čo je pobočka Git?