Ποια είναι η διαφορά μεταξύ της επαναφοράς git -μικτή, -μαλακή και -σκληρή;

Poia Einai E Diaphora Metaxy Tes Epanaphoras Git Mikte Malake Kai Sklere



Στο Git, κάθε δέσμευση συνδέεται με την προηγούμενη δέσμευση και το HEAD δείχνει την πιο πρόσφατη δέσμευση στον κλάδο εργασίας. Το ιστορικό δεσμεύσεων αποθηκεύεται ως δέντρο δεσμεύσεων. Ωστόσο, μερικές φορές οι προγραμματιστές χρειάζεται να τροποποιήσουν το ιστορικό δεσμεύσεων. Για το σκοπό αυτό, το « $ επαναφορά git Η εντολή ” χρησιμοποιείται για την τροποποίηση του ιστορικού του αποθετηρίου Git και τη διόρθωση λαθών που έγιναν.

Αυτό το άρθρο θα εξηγήσει εν συντομία τη διαφορά μεταξύ της επαναφοράς 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 -μικτή, -μαλακή και -σκληρή.