Sobes.tech
Junior

Ինչպե՞ս չեղարկել վերջին հանձնառությունը տարբերակների կառավարման համակարգում։

sobes.tech AI

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

Վերջին հանձնառումը չեղյալ համարելու մի քանի եղանակ կա, կախված նրանից, թե արդյոք այն ուղարկվել է հեռավոր պահոց և ինչ է չեղյալ համարելու նպատակը:

  1. Տեղական հանձնառումը չեղյալ համարել առանց ֆայլերի փոփոխության (soft reset):

    git reset --soft HEAD~1
    # Վերադարձնում է HEAD-ը մեկ հանձնառու առաջ, փոփոխությունները մնում են ինդեքսում (staged):
    
  2. Տեղական հանձնառումը չեղյալ համարել, թողնելով փոփոխությունները աշխատանքային դաշտում (mixed reset - ըստ նախնական կարգավորումների):

    git reset HEAD~1
    # Վերադարձնում է HEAD-ը մեկ հանձնառու առաջ: Փոփոխությունները մնում են աշխատանքային դաշտում (unstaged):
    
  3. Ամբողջությամբ չեղյալ համարել տեղական հանձնառումը, ներառյալ փոփոխությունների հեռացումը աշխատանքային դաշտից և ինդեքսից (hard reset):

    git reset --hard HEAD~1
    # Վերադարձնում է HEAD-ը մեկ հանձնառու առաջ և ջնջում բոլոր տեղական փոփոխությունները: Զգուշացում! Տվյալների կորուստ:
    
  4. Չեղյալ համարել այն հանձնառումը, որը արդեն ուղարկվել է հեռավոր պահոց, ստեղծելով նոր հանձնառում, որը հակադարձում է նախորդ փոփոխությունները:

    git revert HEAD
    # Ստեղծում է նոր հանձնառում, որը հակադարձում է վերջին հանձնառուի փոփոխությունները: Անվտանգ է հանրային ճյուղերի համար:
    

Ընտրությունը կախված է իրավիճակից: Հանրային ճյուղերի համար խորհուրդ է տրվում օգտագործել git revert, քանի որ այն չի փոխում հանձնառումների պատմությունը: Տեղական փոփոխությունների կամ միայնակ աշխատող ճյուղերի համար կարող եք օգտագործել git reset։