Junior
Ako zrušiť posledný commit v systéme správy verzií?
sobes.tech AI
Odpoveď od AI
Existuje niekoľko spôsobov, ako zrušiť posledný commit, v závislosti od toho, či bol odoslaný do vzdialeného repozitára a aký je cieľ zrušenia.
-
Zrušiť lokálny commit bez zmeny súborov (soft reset):
git reset --soft HEAD~1 # Vráti HEAD o jeden commit späť, zmeny zostávajú v indexe (staged). -
Zrušiť lokálny commit, ponechať zmeny v pracovnom adresári (mixed reset - predvolené):
git reset HEAD~1 # Vráti HEAD o jeden commit späť. Zmeny zostávajú v pracovnom adresári (unstaged). -
Úplne zrušiť lokálny commit, vrátane odstránenia zmien z pracovného adresára a indexu (hard reset):
git reset --hard HEAD~1 # Vráti HEAD o jeden commit späť a zruší všetky lokálne zmeny. Pozor! Strata dát. -
Zrušiť commit, ktorý už bol odoslaný do vzdialeného repozitára, vytvorením nového commitu, ktorý zruší zmeny predchádzajúceho:
git revert HEAD # Vytvorí nový commit, ktorý obráti zmeny posledného commitu. Bezpečné pre verejné vetvy.
Voľba metódy závisí od situácie. Pre verejné vetvy sa odporúča použiť git revert, pretože nemení históriu commitov. Pre lokálne zmeny alebo vetvy, na ktorých pracujete sami, môžete použiť git reset.