Αυτό το άρθρο θα εξηγήσει εν συντομία τη διαφορά μεταξύ της επαναφοράς git –σκληρό, –μαλακό και –μικτό.
Ποια είναι η διαφορά μεταξύ της επαναφοράς git -μικτή, -μαλακή και -σκληρή;
Το Git παρέχει πολλαπλές επιλογές επαναφοράς. Με βάση τον τρόπο με τον οποίο χειρίζονται τις δεσμεύσεις, όλες οι διαθέσιμες επιλογές είναι διαφορετικές μεταξύ τους. Όλοι τροποποιούν το ιστορικό Git και μετακινούν το HEAD πίσω. Επιπλέον, χειρίζονται τις αλλαγές με διαφορετικό τρόπο, όπως:
- Ο ' -μαλακός ' η επιλογή που χρησιμοποιείται με το ' $ επαναφορά git ” εντολή για να διατηρήσετε τα αρχεία και να επιστρέψετε τις αλλαγές δέσμευσης στο ευρετήριο Git staging.
- ' $ επαναφορά git – μικτή Το ” χρησιμοποιείται για την αναίρεση των αλλαγών δέσμευσης και την αφαίρεση του αρχείου από το ευρετήριο σταδιοποίησης χωρίς να το διαγράψει από τον κατάλογο εργασίας.
- Ο ' -σκληρά 'επιλογή με το ' $ επαναφορά git Η εντολή ” χρησιμοποιείται για τη διαγραφή όλων των αλλαγών και την αφαίρεση τους από τον τοπικό κατάλογο εργασίας.
Ας πάρουμε ένα παράδειγμα για να δούμε πώς το ' $ επαναφορά git ” Η εντολή λειτουργεί με διαφορετικές επιλογές!
Βήμα 1: Μεταβείτε στο Desired Git Repository
Αρχικά, μετακινηθείτε στο αποθετήριο Git που επιθυμείτε χρησιμοποιώντας το ' CD ' εντολή:
$ CD 'Γ:\Πήγαινε \ t is_repo'
Βήμα 2: Δημιουργία αρχείου
Τώρα, εκτελέστε την παρακάτω εντολή για να δημιουργήσετε ένα αρχείο:
$ αφή File4.txt
Βήμα 3: Προσθήκη αρχείου στο Ευρετήριο Σταδιοποίησης
Χρησιμοποιήστε το ' git προσθήκη Εντολή ” για να προσθέσετε το αρχείο που δημιουργήθηκε πρόσφατα στο ευρετήριο σταδιοποίησης:
$ git προσθήκη File4.txt
Βήμα 4: Υποβολή αλλαγών
Στη συνέχεια, προσθέστε όλες τις αλλαγές στο αποθετήριο εργασίας εκτελώντας το ' git commit ' εντολή:
$ git commit -Μ 'Το αρχείο 4 προστέθηκε'
Βήμα 5: Ελέγξτε το αρχείο καταγραφής Git
Στη συνέχεια, ελέγξτε το ιστορικό καταγραφής του Git για να δείτε τις πιο πρόσφατες δεσμεύσεις που προστέθηκαν:
$ αρχείο καταγραφής gitΣτην παρακάτω έξοδο, μπορείτε να δείτε ότι εμφανίζονται όλες οι πιο πρόσφατες δεσμεύσεις που προστέθηκαν και το ' ΚΕΦΑΛΙ ” επισημαίνει την πρόσφατη δέσμευση:
Σημείωση: Για να ελέγξετε την τρέχουσα θέση κατάδειξης του HEAD με καλύτερο τρόπο, εκτελέστε το ' αρχείο καταγραφής git 'εντολή μαζί με το ' -μία γραμμή σημαία:
$ αρχείο καταγραφής git --Σε σύνδεσηΗ παρακάτω έξοδος δείχνει τη λίστα των κατακερματισμένων SHA δέσμευσης με μηνύματα δέσμευσης:
Βήμα 6: Χρησιμοποιήστε την επαναφορά git – soft Command
Για να επαναφέρετε τις προστιθέμενες αλλαγές από το αποθετήριο Git στο ευρετήριο σταδίου, χρησιμοποιήστε το ' επαναφορά git εντολή μαζί με το '– μαλακός ” και καθορίστε την επιθυμητή θέση HEAD όπου απαιτείται η μετακίνηση του δείκτη:
$ επαναφορά git --μαλακός ΚΕΦΑΛΙ~ 1
Βήμα 7: Ελέγξτε την κατάσταση Git
Τώρα, επαληθεύστε τη θέση επαναφοράς του HEAD ελέγξτε την κατάσταση του αποθετηρίου Git:
$ κατάσταση gitΜπορεί να φανεί ότι το « git reset – soft Η εντολή ” επέστρεψε τις αλλαγές δέσμευσης στο ευρετήριο σταδίου Git. Επιπλέον, το « File4.txt ” το αρχείο βρίσκεται τώρα στο ευρετήριο σταδίου Git και πρέπει να δεσμευτεί:
Βήμα 8: Ελέγξτε το αρχείο καταγραφής Git
Για να δείτε την τρέχουσα θέση του HEAD, εκτελέστε τη δεδομένη εντολή μαζί με το ' -μία γραμμή ” επιλογή:
$ αρχείο καταγραφής git --Σε σύνδεσηΕδώ, το ΚΕΦΑΛΙ δείχνει το ' Αρχείο 3 δεσμεύομαι:
Βήμα 9: Χρησιμοποιήστε το git reset — mixed Command
Για να αναιρέσετε τις δεσμευμένες αλλαγές και να αφαιρέσετε τα αρχεία από την περιοχή σταδιοποίησης χωρίς να τα διαγράψετε από τον κατάλογο εργασίας, εκτελέστε το ' $ επαναφορά git – μικτή εντολή ” μαζί με την απαιτούμενη θέση HEAD της δέσμευσης:
$ επαναφορά git --μικτός ΚΕΦΑΛΙ~ 1
Βήμα 10: Ελέγξτε την κατάσταση Git
Δείτε τις αλλαγές που προστέθηκαν πρόσφατα ελέγχοντας την κατάσταση του αποθετηρίου Git:
$ κατάσταση gitΜπορεί να παρατηρηθεί ότι οι καθορισμένες αλλαγές δέσμευσης αφαιρούνται από την περιοχή σταδίου. Ωστόσο, τοποθετούνται στον χώρο εργασίας:
Βήμα 11: Ελέγξτε το αρχείο καταγραφής Git
Ελέγξτε το ιστορικό καταγραφής αναφοράς του αποθετηρίου Git μαζί με τον κατακερματισμό SHA:
$ αρχείο καταγραφής git --Σε σύνδεση
Βήμα 12: Χρησιμοποιήστε την επαναφορά git — σκληρή εντολή
Για να καταργήσετε τις πρόσθετες αλλαγές από τον τοπικό κατάλογο εργασίας του Git, εκτελέστε το ' $ επαναφορά git – σκληρό ' εντολή:
$ επαναφορά git --σκληρά ΚΕΦΑΛΙ~ 1
Βήμα 13: Επαληθεύστε τον δείκτη ΚΕΦΑΛΗΣ που έχει επιστραφεί
Για να επαληθεύσετε τον δείκτη HEAD, επιστρέψτε στην καθορισμένη θέση, εκτελέστε το ' αρχείο καταγραφής git ' εντολή:
$ αρχείο καταγραφής git --Σε σύνδεσηΗ παρακάτω έξοδος δείχνει ότι το HEAD δείχνει στο ' Προστέθηκε το αρχείο 1 δεσμεύομαι:
Βήμα 14: Ελέγξτε την κατάσταση Git
Για να δείτε τις αλλαγές που προστέθηκαν, ελέγξτε την κατάσταση Git:
$ κατάσταση gitΜπορεί να φανεί ότι δεν έχουμε κανένα κομμάτι και εκκρεμείς αλλαγές του ' Αρχείο2.txt ' αρχείο. Επομένως, το File2.txt έχει καταργηθεί πλήρως:
Βήμα 15: Επαληθεύστε τη λίστα περιεχομένου αποθετηρίου
Για να επαληθεύσετε τη λίστα αποθετηρίου περιεχομένου, εκτελέστε το ' ls ' εντολή:
$ lsΌπως μπορείτε να δείτε, το « Αρχείο2.txt ” το αρχείο δεν υπάρχει στον τρέχοντα κατάλογο:
Εξηγήσαμε τη διαφορά μεταξύ των επιλογών επαναφοράς git –μικτή, –μαλακή και –σκληρή.
συμπέρασμα
Ο ' επαναφορά git Η εντολή ” χρησιμοποιείται για την επαναφορά των αλλαγών, την τροποποίηση του ιστορικού του αποθετηρίου Git και τη διόρθωση λαθών. Ο ' git reset – soft Η εντολή ” διατηρεί τα αρχεία και επιστρέφει τις αλλαγές δέσμευσης στην περιοχή σταδίου Git. Αντίθετα, το « git reset –μικτό ” εντολή αναίρεση των αλλαγών δέσμευσης και αφαίρεση του αρχείου από το ευρετήριο σταδιοποίησης χωρίς να το διαγράψετε από τον κατάλογο εργασίας. Για να διαγράψετε όλες τις αλλαγές και να τις αφαιρέσετε από την περιοχή εργασίας του Git, το ' git reset –σκληρό μπορεί να χρησιμοποιηθεί η εντολή. Αυτό το άρθρο επεξηγεί τη διαφορά μεταξύ της επαναφοράς git -μικτή, -μαλακή και -σκληρή.