Git
Chapters ▾ 2nd Edition

A3.8 Appendix C: Git команди - Patching

Patching

Има няколко команди в Git обединени около концепцията да възприемаме къмитите от гледна точка на това какви промени въвеждат, тоест като серия от пачове. Тези команди помагат да управлявате клоновете си в подобен маниер.

git cherry-pick

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

Cherry picking процесът е обяснен и демонстриран в Rebasing и Cherry-Picking работни процеси.

git rebase

Командата git rebase в общи линии е автоматична версия на cherry-pick. Тя определя серия от къмити и след това ги cherry-pick-ва един по един в същия ред на друго място.

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

Използваме я също в примера за разделяне на историята в две отделни хранилища в Заместване с помощта на флага --onto.

Разглеждаме и ситуации, при които може да се окажем в merge конфликт по време на пребазиране в Rerere.

Използваме я в интерактивен скриптов режим с опцията -i в Смяна на повече къмит съобщения.

git revert

Командата git revert по същество е обратна на git cherry-pick. Тя създава нов къмит, който прилага точно обратното на промените въведени в посочения къмит и реално ги отменя.

Използваме я във Връщане на къмит за да отменим merge къмит.