Sobes.tech
Junior

Ինչ է cherry-pick-ը։

sobes.tech AI

Պատասխան AI-ից

git cherry-pick օգտագործվում է մեկ կամ մի քանի կոմիտների տեղափոխման համար մեկ ճյուղից մյուսը:

Աշխատելու սկզբունք:

  1. Ընտրում է նշված կոմիտը (կամ կոմիտները) աղբյուրային ճյուղում:
  2. Կիրառում է այդ կոմիտներում պարունակվող փոփոխությունները ընթացիկ ակտիվ ճյուղում:
  3. Ստեղծում է նոր կոմիտներ ընթացիկ ճյուղում նույն փոփոխություններով և հաղորդագրություններով, ինչ սկզբնականները:

Երբ օգտագործել:

  • Մեկ կոնկրետ սխալի ուղղում տեղափոխել մեկ ճյուղից մյուսը (օրինակ, արտադրություն)՝ առանց մյուս փոփոխություններին անդրադառնալու:
  • Փոփոխությունների կիրառում մեկ ֆիչեր-ճյուղից մյուսը՝ առանց նրանց ամբողջությամբ միացնելու:
  • Անհաջող մերգների վերականգնում՝ պահելով առանձին կոմիտները:

Տարբերությունը merge և rebase-ից:

  • merge: Միավորում է մեկ ճյուղի ամբողջ փոփոխությունների պատմությունը մյուսի հետ:
  • rebase: Փոխում է կոմիտների պատմությունը՝ տեղափոխելով դրանք նոր բազայի վրա:
  • cherry-pick: Օգտագործում է միայն ընտրված կոմիտները՝ ստեղծելով նորերը և չփոխելով սկզբնական կոմիտների պատմությունը:

Հիմնական հրամանը:

# Մի կոմիտ տեղափոխել
git cherry-pick <commit-hash>

# Մի քանի կոմիտներ տեղափոխել (նշված կարգով)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Օրինակ:

Ենթադրենք, կա երկու ճյուղ main և feature: feature-ում կատարվել է fix-typo կոմիտը: Այս կոմիտը պետք է տեղափոխել main-ին:

# Փոխել նպատակային ճյուղը
git checkout main

# Cherry-pick կատարել՝ օգտագործելով `feature`-ի կոմիտի հեշը
git cherry-pick 7f3bca2 # Օրինակ հեշ

Համարելով, որ հրամանը կատարվելուց հետո, main-ում կհայտնվի նոր կոմիտ, որը նույն փոփոխություններն է պարունակում, ինչ fix-typo, բայց այլ հեշով։