Kako otkazati poslednju commit u sistemu kontrole verzija?
sobes.tech АИ
Одговор од АИ
Postoji nekoliko načina da se otkaže poslednji commit, u zavisnosti od toga da li je poslat u udaljeni repozitorijum i kakav je cilj otkazivanja.
-
Otkažite lokalni commit bez menjanja fajlova (soft reset):
git reset --soft HEAD~1 # Vraća HEAD za jedan commit unazad, promene ostaju u indeksu (staged). -
Otkažite lokalni commit, ostavljajući promene u radnom direktorijumu (mixed reset - podrazumevano):
git reset HEAD~1 # Vraća HEAD za jedan commit unazad. Promene ostaju u radnom direktorijumu (unstaged). -
Potpuno otkažite lokalni commit, uključujući brisanje promena iz radnog direktorijuma i indeksa (hard reset):
git reset --hard HEAD~1 # Vraća HEAD za jedan commit unazad i otkazuje sve lokalne promene. Pažnja! Gubitak podataka. -
Otkažite commit koji je već poslat u udaljeni repozitorijum, kreirajući novi commit koji poništava promene prethodnog:
git revert HEAD # Kreira novi commit koji obrće promene poslednjeg commita. Sigurno za javne grane.
Izbor metode zavisi od situacije. Za javne grane preporučuje se korišćenje git revert, jer on ne menja istoriju commitova. Za lokalne promene ili grane na kojima radite sami, možete koristiti git reset.