Sobes.tech
Junior

Cherry-pick nədir?

sobes.tech Süni İntellekt

AI-dan cavab

git cherry-pick bir və ya bir neçə commit-i bir filialdan digərinə köçürmək üçün istifadə olunur.

İş prinsipi:

  1. Mənbə filialda göstərilən commit(lər)i seçir.
  2. Bu commitlərdəki dəyişiklikləri aktiv olan hazır filialda tətbiq edir.
  3. Eyni dəyişikliklər və mesajlarla yeni commitlər yaradır.

Nə zaman istifadə etmək:

  • Bir filialdan (məsələn, istehsal) digərinə (məsələn, inkişaf) müəyyən bir səhv düzəlişini köçürmək, digər dəyişikliklərə toxunmadan.
  • Bir xüsusiyyət filialından digərinə dəyişiklikləri tətbiq etmək, tam birləşdirmədən.
  • Yanlış merge-ləri ləğv etmək və ayrı-ayrı commitləri saxlamaq.

mergerebase ilə fərqi:

  • merge: Bir filialın bütün dəyişiklik tarixçəsini digər filialla birləşdirir.
  • rebase: Commit tarixçəsini yenidən yazır, onları yeni baza üzərinə köçürür.
  • cherry-pick: Yalnız seçilmiş commitləri tətbiq edir, yeni commitlər yaradır və orijinal commitlərin tarixçəsini dəyişmir.

Əsas əmri:

# Bir commit-i köçürmək
git cherry-pick <commit-hash>

# Bir neçə commit-i köçürmək (göstərilən ardıcıllıqla)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Nümunə:

Tutaq ki, iki filial var: mainfeature. feature filialında fix-typo adlı commit edilib. Bu commit-i main filialına köçürmək lazımdır.

# Hədəf filialına keçin
git checkout main

# Commit hash istifadə edərək cherry-pick icra edin
git cherry-pick 7f3bca2 # Nümunə hash

Əmri icra etdikdən sonra, main filialında fix-typo ilə eyni dəyişiklikləri ehtiva edən yeni commit yaranacaq, lakin başqa hash ilə.