Sobes.tech
Junior — Middle

Կարող եք բացատրել, թե ինչ է անում Git reset հրամանը և որ դեպքերում է այն օգտագործվում?

sobes.tech AI

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

git reset հրամանը օգտագործվում է փոփոխությունները հետ վերցնելու և ընթացիկ ճյուղի (HEAD) ցուցիչը այլ commit-ի վրա տեղափոխելու համար: Այն կարող է փոփոխել ինդեքսի (staging area) և աշխատանքային դիրեկտորիայի վիճակը՝ կախված պարամետրերից:

Հիմնական տարբերակները՝

  • git reset --soft <commit> — տեղափոխում է HEAD-ը նշված commit-ի վրա, թողնելով փոփոխությունները ինդեքսում և աշխատանքային դիրեկտորի մեջ: Օգտագործվում է commit-ների հետ գործ ունենալու համար՝ փոփոխությունները պահելով նոր commit-ի համար:

  • git reset --mixed <commit> (նույնպես՝ ըստ նախնական կարգի) — տեղափոխում է HEAD-ը և վերականգնում է ինդեքսը, բայց փոփոխությունները մնում են աշխատանքային դիրեկտորում: Позволяет отменить commit-и и удалить изменения из индекса.

  • git reset --hard <commit> — տեղափոխում է HEAD-ը, վերականգնում է ինդեքսը և աշխատանքային դիրեկտորին, ամբողջությամբ ջնջելով բոլոր փոփոխությունները նշված commit-ից հետո:

Օգտագործման սցենարներ՝

  • Վերջին commit-ների հետ գործ ունենալու համար:
  • Փոփոխությունները ինդեքսից հեռացնելու համար:
  • Լրիվ վերականգնում նախորդ վիճակին:

Օրինակ՝

git reset --hard HEAD~1  # հետ գնալ մեկ commit-ով և ջնջել փոփոխությունները