Wstęp
Operacja cherry-pick polega na skopiowaniu jednej lub większej ilości rewizji ("commitów") z jednej gałęzi (źródłowej) i umieszczeniu ich w drugiej gałęzi (docelowej) nadając nowy identyfikator rewizji (SHA).
Przykład
Załóżmy, że mamy dwie gałęzie - pierwszą o nazwie "main" (pomarańczowa), w której są trzy pliki: a.txt, b.txt, c.txt. Każdy plik utworzony w innej rewizji.
Druga gałąź "feature" (zielona) zawiera dwa pliki: d.txt oraz e.txt, utworzone również w osobnych "commitach".
Aby do gałęzi "feature" przenieść jedynie wybrane rewizje z gałęzi "main" wykonaj dwa polecenia.
Pierwsze polecenie przechodzi do gałęzi docelowej, do której będą przeniesione zmiany (tutaj "feature"):
git checkout feature
Drugie polecenie wykonuje operację kopiowania/przeniesienia wybranych rewizji na podstawie identyfikatorów (SHA):
git cherry-pick 76b6ffa e733f01
Pierwsza rewizja 76b6ffa reprezentuje nowy plik a.txt, druga e733f01 to b.txt.
Wynik po wykonaniu polecenia:
Gałąź feature zawiera teraz dwie nowe rewizje przeniesione z gałęzi main. Zwróć uwagę, że skopiowane rewizje otrzymały nowy identyfikator!
Uwaga
Pamiętaj, że cherry-pick może prowadzić do konfliktów, szczególnie gdy zmiany w gałęzi źródłowej kolidują z już istniejącymi zmianami w gałęzi docelowej. W takim przypadku Git poinformuje o konflikcie, który należy rozwiązać ręcznie.
Powodzenia!