Junior
Ինչ է cherry-pick-ը։
sobes.tech AI
Պատասխան AI-ից
git cherry-pick օգտագործվում է մեկ կամ մի քանի կոմիտների տեղափոխման համար մեկ ճյուղից մյուսը:
Աշխատելու սկզբունք:
- Ընտրում է նշված կոմիտը (կամ կոմիտները) աղբյուրային ճյուղում:
- Կիրառում է այդ կոմիտներում պարունակվող փոփոխությունները ընթացիկ ակտիվ ճյուղում:
- Ստեղծում է նոր կոմիտներ ընթացիկ ճյուղում նույն փոփոխություններով և հաղորդագրություններով, ինչ սկզբնականները:
Երբ օգտագործել:
- Մեկ կոնկրետ սխալի ուղղում տեղափոխել մեկ ճյուղից մյուսը (օրինակ, արտադրություն)՝ առանց մյուս փոփոխություններին անդրադառնալու:
- Փոփոխությունների կիրառում մեկ ֆիչեր-ճյուղից մյուսը՝ առանց նրանց ամբողջությամբ միացնելու:
- Անհաջող մերգների վերականգնում՝ պահելով առանձին կոմիտները:
Տարբերությունը 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, բայց այլ հեշով։