GIT Cherry-pick - Кога и как да използвате GIT Cherry-pick с пример?

Съдържание:

Anonim

Въведение в GIT Cherry-pick

В тази статия ще научим подробно за GIT Cherry-pick. Има много програмисти, работещи върху една и съща разработка на софтуер от различни краища на света. Тогава как да управлявате кодовете? Как ще накарат другите да разберат какви промени са направили? Как да ангажирате кодовете и да поддържате различни версии? Как да обединим кодовете?

За да реши тези проблеми, GIT влезе в света на развитието. GIT е изключителна система за управление на изходния код (SCM) и разпределена система за контрол на версиите. GIT е създаден от Linux Torvald, човекът, разработил ядрото на Linux. Очевидно е инструмент с отворен код, при който всеки програмист може да допринесе за изграждането на парче софтуер от всяка точка на света.

GIT има много функции. Може да има няколко клона. Разработчикът може да записва кодове, след като създаде свой клон в локалната система и да го слее с главния клон или други клонове на отдалечения GIT хранилище.

Какво е GIT Cherry-pick?

Представете си, работата по проекта продължава да пише сценарий за историята и еволюцията на мобилните телефони. Така че, има много хора, които работят по един и същ проект и всички работят поотделно. Въпреки това в крайна сметка всеки сценарий ще бъде съставен заедно.

Сега член А пише за телефони на Apple и изведнъж осъзнава, че може да бъде по-добре. И така, той информира въпроса на останалите членове на екипа, които работят по същия проект. Друг член X му каза, че пише сценарий на телефони с Android и помоли член A да погледне.

Тогава член А погледна сценария на съотборника и откри, че някои от частите са същите с някои промени, които са наистина добри. Следователно той избра тези промени и постави по свой собствен сценарий. Това е същото, което Cherry-pick нарича GIT в областта на софтуерната кодираща индустрия.

Git-cherry-pick е мощна команда на git и брането на череши е процес за извличане на ангажимент от клон и прилагането му към някой друг клон. С прости думи, може да има няколко клона, където разработчиците ангажират кодовете си. Сега един програмист е трябвало да извърши кодовете си в клон А, но той е извършил кодовете в клон Б по грешка. По това време Cherry-pick може да върне връщането към правилния клон.

Използвайте командата по-долу (в система Unix), за да знаете различни опции за git-cherry-pick,

Команда:

$man git-cherry-pick

Синтаксисът за команда cherry-pick,

Синтаксис:

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

Когато използваме GIT Cherry-pick?

Git-cherry-pick е полезен инструмент, но не най-добрата практика за всички времена. git-cherry-pick може да се използва в следните сценарии,

  • За да го направите правилно, когато ангажимент, направен в друг клон случайно.
  • За предпочитане традиционните сливания
  • За да приложите промените в съществуващ ангажимент.
  • Дублиращ ангажимент
  • Поправяне на грешки

Как работи GIT Cherry-pick?

Намерен дефект в кода в производствената среда и трябва да се приложи поправка. След като промените са въведени и дефект е отстранен, сега е време да върнете тази промяна обратно в средата за разработка, така че дефектът да не се появява отново и отново в производствената среда в бъдеще.

Първият вариант е просто git merge и е идеално решение, ако работи. Има обаче и други промени, направени в производствената среда, и те не могат да бъдат върнати в средата за развитие, докато се обединят. И в този случай, черешовата бери е правилната опция.

Cherry-pick носи този ангажимент, който беше направен само за отстраняване на грешки. Той не избира останалите ангажименти.

Ето илюстрация,

Фигура 1: G и H са производственият клон. Клонът от A до F Development се ангажира. Проблем е открит в бранша „Производство“. В H ангажимент се разработва корекция, която трябва да се прилага в раздела за развитие, но не се изисква ангажимент G.

Фиг. 2: Записът H е избран от череша на раздела за развитие и в резултат на това команд е H '. Промените в G ангажимент не са включени в раздела за развитие.

Как да използвате GIT Cherry-pick с пример?

Да предположим, че имаме два клона (master и new_feature) (командата, използвана за разглеждане на разклонението на git)

Погрешно поехме ангажимента (подчертано) в клона new_feature. (командата се използва за преглед на ангажирания log-git дневник)

Това обаче трябва да е само в основния клон. Първо копирайте подчертаната SHA в тефтерче.

Сега ще използваме команда git-cherry-pick, за да преместим този ангажимент към master клона, но преди това трябва да преминем към master клона (командата, използвана за превключване на разклонението на git checkout < името на клона > )

(използва се команда git - cherry - pick < commit id > ) (същата SHA трябва да бъде поставена, която беше копирана в бележника по-рано с git cherry-pick команда)

Сега можем да видим същата фиксация да е налична в главния клон (командата used-git log)

За повече пример на git cherry-pick команди, моля, вижте връзката по-долу,

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

Важни неща, които трябва да запомните

Трябва да запомните три неща, докато използвате череши и работите в екип.

1. стандартизиране на съобщение за ангажиране: По-добре е да използваме стандартизирано съобщение за ангажиране и -x, ако избираме череша от публичен клон.

git cherry-pick -x

Това ще избегне сливането на конфликт в бъдеще.

2. копирайте върху бележките: Понякога някои от колекционерите на череши имат бележки, а когато пускаме череши, бележките не се копират. Затова е по-добре да го използвате.

git notes copy

3. C herry-pick няколко команди, когато те са само линейни: Искаме да изберем многобройни команди като G, H (фиг. 1), ако те са линейни, тогава използвайте само командата по-долу,

git cherry-pick G^..H

заключение

Да предположим, че искаме да вземем конкретен ангажимент от друг клон и да приложим към текущия клон, ето препоръчителни стъпки,

1. Намерете хеш на фиксиране, който първо трябва да бъде избран на череша.

2. Отидете до клона на местоназначението.

3. git cherry-pick -x

Решете конфликтите, ако се случат. Ако в оригиналния ангажимент има бележки, те трябва да бъдат копирани.

git notes copy

Препоръчителни статии

Това е ръководство за GIT Cherry-pick. Тук обсъждаме нейната работа и как да използваме git cherry pick с подробни примери. Можете също да разгледате следните статии, за да научите повече -

  1. Git Tools
  2. Git терминология
  3. Маркер за Git Checkout
  4. Какво е Git Branch?