Η εντολή επαναφοράς Git

Επαναφορά Git

Η git resetεντολή σάς επιτρέπει να επαναφέρετε την τρέχουσα κεφαλή σας σε μια καθορισμένη κατάσταση. Μπορείτε να επαναφέρετε την κατάσταση συγκεκριμένων αρχείων καθώς και ολόκληρου του κλάδου.

Επαναφέρετε ένα αρχείο ή ένα σύνολο αρχείων

Η ακόλουθη εντολή σάς επιτρέπει να επιλέξετε επιλεκτικά κομμάτια περιεχομένου και να το επαναφέρετε ή να το σταματήσετε.

git reset (--patch | -p) [tree-ish] [--] [paths]

Καταργήστε τη στάση ενός αρχείου

Εάν μετακινήσατε ένα αρχείο στην περιοχή σταδιοποίησης με git add, αλλά δεν θέλετε πλέον να είναι μέρος μιας δέσμευσης, μπορείτε να χρησιμοποιήσετε git resetγια να αποσυμπιέσετε αυτό το αρχείο:

git reset HEAD FILE-TO-UNSTAGE

Οι αλλαγές που κάνατε θα εξακολουθούν να υπάρχουν στο αρχείο. Αυτή η εντολή καταργεί το αρχείο από την περιοχή σταδιοποίησης.

Επαναφέρετε έναν κλάδο σε μια προηγούμενη δέσμευση

Η ακόλουθη εντολή επαναφέρει το HEAD του τρέχοντος κλάδου σας στο δεδομένο COMMITκαι ενημερώνει το ευρετήριο. Βασικά επαναφέρει την κατάσταση του υποκαταστήματός σας, και στη συνέχεια όλοι σας δεσμεύονται να προχωρήσετε προς τα εμπρός γράφοντας για οτιδήποτε ήρθε μετά το σημείο επαναφοράς. Εάν παραλείψετε το MODE, προεπιλογή --mixed:

git reset MODE COMMIT

Οι επιλογές MODEείναι:

  • --soft: δεν επαναφέρει το αρχείο ευρετηρίου ή το δέντρο εργασίας, αλλά επαναφέρει το HEAD σε commit. Αλλάζει όλα τα αρχεία σε "Αλλαγές προς δέσμευση"
  • --mixed: επαναφέρει το ευρετήριο, αλλά όχι το δέντρο εργασίας και αναφέρει τι δεν έχει ενημερωθεί
  • --hard: επαναφέρει το ευρετήριο και το δέντρο εργασίας. Τυχόν αλλαγές στα αρχεία που παρακολουθούνται στο δέντρο εργασίας από τότε commitαπορρίπτονται
  • --merge: επαναφέρει το ευρετήριο και ενημερώνει τα αρχεία στο δέντρο εργασίας που είναι διαφορετικά μεταξύ commitκαι HEAD, αλλά διατηρεί αυτά που είναι διαφορετικά μεταξύ του ευρετηρίου και του δέντρου εργασίας
  • --keep: επαναφέρει τις καταχωρίσεις ευρετηρίου και ενημερώνει αρχεία στο δέντρο εργασίας που διαφέρουν μεταξύ commitκαι HEAD. Εάν ένα αρχείο που είναι διαφορετικό μεταξύ commitκαι HEAD έχει τοπικές αλλαγές, η επαναφορά ακυρώνεται