Przenoszenie wybranych zmian w Git czyli cherry-pick w akcji

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!

#buymeacoffee


# GIT