Μπορείτε να εξηγήσετε τι κάνει η εντολή Git reset και σε ποια σενάρια χρησιμοποιείται;
sobes.tech AI
Απάντηση από AI
Η εντολή git reset χρησιμοποιείται για την ακύρωση αλλαγών και τη μετακίνηση του δείκτη του τρέχοντος κλάδου (HEAD) σε ένα άλλο commit. Μπορεί να τροποποιήσει την κατάσταση του δείκτη (staging area) και του καταλόγου εργασίας ανάλογα με τις παραμέτρους.
Κύριες επιλογές:
-
git reset --soft <commit>— μετακινεί το HEAD στο καθορισμένο commit, αφήνοντας τις αλλαγές στον δείκτη και στον κατάλογο εργασίας. Χρησιμοποιείται για την ακύρωση commits, διατηρώντας τις αλλαγές για νέο commit. -
git reset --mixed <commit>(προεπιλογή) — μετακινεί το HEAD και επαναφέρει τον δείκτη, αλλά οι αλλαγές παραμένουν στον κατάλογο εργασίας. Επιτρέπει την ακύρωση commits και την αφαίρεση αλλαγών από τον δείκτη. -
git reset --hard <commit>— μετακινεί το HEAD, επαναφέρει τον δείκτη και τον κατάλογο εργασίας, διαγράφοντας πλήρως όλες τις αλλαγές μετά το καθορισμένο commit.
Σεναρια χρήσης:
- Ακύρωση των τελευταίων commits.
- Αφαίρεση αλλαγών από τον δείκτη.
- Πλήρης επαναφορά στην προηγούμενη κατάσταση.
Παράδειγμα:
git reset --hard HEAD~1 # επιστροφή ένα commit πίσω με διαγραφή αλλαγών