Junior
Czym jest cherry-pick?
sobes.tech AI
Odpowiedź od AI
git cherry-pick służy do przenoszenia jednego lub kilku commitów z jednej gałęzi do drugiej.
Zasada działania:
- Wybiera określony commit (lub commity) w gałęzi źródłowej.
- Zastosowuje zmiany zawarte w tych commitach do aktualnej aktywnej gałęzi.
- Tworzy nowe commity w bieżącej gałęzi z tymi samymi zmianami i wiadomościami co oryginalne.
Kiedy używać:
- Przenoszenie konkretnej poprawki błędu z jednej gałęzi (np. produkcja) do innej (np. rozwój), bez wpływu na inne zmiany.
- Zastosowanie zmian z jednej gałęzi funkcji do innej, bez pełnego scalania.
- Anulowanie nieprawidłowych merge'ów przy zachowaniu oddzielnych commitów.
Różnice od merge i rebase:
merge: łączy całą historię zmian z jednej gałęzi z drugą.rebase: przepisywuje historię commitów, przesuwając je na nową bazę.cherry-pick: stosuje tylko wybrane commity, tworząc nowe i nie zmieniając historii oryginalnych commitów.
Podstawowe polecenie:
# Przeniesienie jednego commitu
git cherry-pick <commit-hash>
# Przeniesienie kilku commitów (w kolejności ich wskazania)
git cherry-pick <commit-hash-1> <commit-hash-2> ...
Przykład:
Załóżmy, że są dwie gałęzie: main i feature. Na gałęzi feature wykonano commit fix-typo. Należy przenieść ten commit do gałęzi main.
# Przełącz się na docelową gałąź
git checkout main
# Wykonaj cherry-pick, używając hasha commitu z gałęzi feature
git cherry-pick 7f3bca2 # Przykładowy hash commitu
Po wykonaniu polecenia w gałęzi main pojawi się nowy commit z tymi samymi zmianami co fix-typo, ale z innym hashem.