Πώς να διαγράψετε μια δέσμευση στο Git

Η διαγραφή μιας δέσμευσης στο Git είναι κάτι που μπορεί να κάνετε πιο συχνά από ό,τι θα περιμένατε. Με μια τόσο κοινή εργασία, πιθανότατα θα σας φανεί χρήσιμο να έχετε έναν γρήγορο οδηγό.

Πώς να διαγράψετε μια δέσμευση στο Git

Αυτό το άρθρο απαντά πώς να διαγράψετε μια δέσμευση Git και άλλες πιθανές λύσεις που μπορείτε να δοκιμάσετε. Επομένως, εάν κάνετε λάθος στην τελευταία σας δέσμευση ή θέλετε να καθαρίσετε το ιστορικό του repo σας, διαβάστε παρακάτω για να μάθετε.

Διαγραφή δέσμευσης στο Git

Μπορείτε να διαγράψετε μια δέσμευση στο Git με μερικούς τρόπους. Εάν δεν θέλετε ή δεν μπορείτε να αλλάξετε το μήνυμα δέσμευσης Git , τότε η πιο συνηθισμένη λύση είναι να χρησιμοποιήσετε τις εντολές "git reset" και "git revert".

Για να χρησιμοποιήσετε το "git reset", κάντε το εξής:

  1. Βρείτε το commit που θέλετε να διαγράψετε με το git log .
    Πώς να διαγράψετε μια δέσμευση στο Git
  2. Χρησιμοποιήστε την επαναφορά git - soft [commit hash] για να αναιρέσετε μια εντολή δέσμευσης χωρίς να "nuking" τίποτα.
    Πώς να διαγράψετε μια δέσμευση στο Git
  3. Εναλλακτικά, χρησιμοποιήστε το git reset –hard [commit hash] για επαναφορά στο commit πριν από αυτό που θέλετε να διαγράψετε.
    Πώς να διαγράψετε μια δέσμευση στο Git
  4. Αντικαταστήστε το "[commit hash]" με τον κατακερματισμό της δέσμευσης που στοχεύετε.

Εναλλακτικά, μπορείτε επίσης να χρησιμοποιήσετε το "git rebase -i HEAD~[Number]" για να επαναφέρετε τον τελευταίο αριθμό δεσμεύσεων. Αντικαταστήστε το [number] με τον αριθμό των δεσμεύσεων. Το Git θα σας δείξει ένα αρχείο που μπορείτε να επεξεργαστείτε και να αφαιρέσετε το commit που θέλετε να φύγετε. Κάντε αυτό μόνο εάν δεν έχετε ήδη προωθήσει μια δέσμευση.

Αυτή είναι μια απλή μέθοδος στην επιφάνεια, αλλά να είστε προσεκτικοί. Καταργεί οριστικά όλες τις αλλαγές στις δεσμεύσεις μετά από αυτήν στην οποία το επαναφέρατε, οπότε βεβαιωθείτε ότι αυτό είναι ακριβώς αυτό που θέλετε.

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το "git revert" ως εξής:

  1. Εάν θέλετε να διατηρήσετε τις αλλαγές στον κατάλογο εργασίας σας, χρησιμοποιήστε το git revert [commit hash] . Αυτή η εντολή δημιουργεί ένα νέο commit που αναιρεί τις αλλαγές από το commit που καθορίζετε.
    Πώς να διαγράψετε μια δέσμευση στο Git
  2. Μετά την επαναφορά, σπρώξτε τις αλλαγές στο απομακρυσμένο αποθετήριο με το git push .
    Πώς να διαγράψετε μια δέσμευση στο Git

Ακολουθεί μια άλλη εναλλακτική, σε περίπτωση που θέλετε να διαγράψετε πολλές, συγκεκριμένες δεσμεύσεις:

  1. Χρησιμοποιήστε το git checkout [last commit hash] για να ελέγξετε την τελευταία δέσμευση που πρέπει να παραμείνει.
    Πώς να διαγράψετε μια δέσμευση στο Git
  2. Δημιουργήστε ένα νέο υποκατάστημα με επισκευή git checkout -b .
    Πώς να διαγράψετε μια δέσμευση στο Git
  3. Εκτελέστε το git cherry-pick [specific commit hash] στην πρώτη δέσμευση που θέλετε να διατηρήσετε.
    Πώς να διαγράψετε μια δέσμευση στο Git
  4. Επαναλάβετε για τις άλλες δεσμεύσεις που θέλετε να διατηρήσετε.
  5. Εκτελέστε το git checkout master σε checkout master.
    Πώς να διαγράψετε μια δέσμευση στο Git
  6. Επαναφορά του master στην τελευταία χρησιμοποιήσιμη δέσμευση με git reset –hard [last commit hash] .
    Πώς να διαγράψετε μια δέσμευση στο Git
  7. Συγχώνευση του νέου κλάδου για master με την επιδιόρθωση συγχώνευσης git .
    Πώς να διαγράψετε μια δέσμευση στο Git
  8. Στη συνέχεια, εκτελέστε το git push -f origin master για να πιέσετε στο τηλεχειριστήριο.
    Πώς να διαγράψετε μια δέσμευση στο Git

Πότε πρέπει να διαγράψετε δεσμεύσεις

Υπάρχουν μερικές περιπτώσεις κατά τις οποίες η αφαίρεση μιας δέσμευσης είναι το καλύτερο που μπορείτε να κάνετε. Εδώ είναι μερικά από αυτά.

Κακός Κώδικας

Ένας από τους πιο συνηθισμένους λόγους για τους οποίους θέλετε να απαλλαγείτε από μια δέσμευση είναι επειδή ο κώδικας σε αυτό απλώς δεν την κόβει. Ίσως έχετε κάνει ένα λάθος και θέλετε να ξεκινήσετε από την αρχή, ή ίσως έχετε συνειδητοποιήσει ότι το αποτέλεσμα δεν ταιριάζει με αυτό που προσπαθείτε να επιτύχετε. Για παράδειγμα, μπορεί να έχετε προσθέσει μια συνάρτηση που έρχεται σε διένεξη με άλλο τμήμα του κώδικά σας. Η διαγραφή αυτής της δέσμευσης σάς επιτρέπει να επιστρέψετε, να διορθώσετε το πρόβλημα και, στη συνέχεια, να δεσμεύσετε ξανά τη διορθωμένη έκδοση.

Εάν μόλις δεσμεύσατε ένα κομμάτι κώδικα και στη συνέχεια εντοπίσατε ένα κραυγαλέο σφάλμα, όπως ένα σφάλμα ή ένα κομμάτι κώδικα που δεν θα έπρεπε να υπήρχε, αλλά δεν έχετε τον χρόνο να το διορθώσετε – αυτός είναι ένας καλός λόγος για να διαγράψετε την δέσμευση. Αντί να αφήσετε αυτό το περιττό ή ελαττωματικό κομμάτι κώδικα να παραμείνει στο ιστορικό του έργου σας (και ενδεχομένως να προκαλέσει σύγχυση ή ακόμα και καταστροφικά σφάλματα στην επιδιόρθωση σφαλμάτων), μπορείτε να διαγράψετε αυτήν τη δέσμευση. Με αυτόν τον τρόπο διατηρείται το έργο σας καθαρό.

Ευαίσθητα Δεδομένα

Η κατά λάθος διάδοση ευαίσθητων δεδομένων συμβαίνει πιο συχνά από ό,τι νομίζετε. Δεν αποτελεί έκπληξη το γεγονός ότι κάτι τέτοιο μπορεί να αποτελεί σημαντικό κίνδυνο ασφάλειας, είτε προσωπικό είτε εταιρικό. Οτιδήποτε, από κωδικούς πρόσβασης και κλειδιά API έως προσωπικές πληροφορίες, θα μπορούσε να καταλήξει κρυφά στη δέσμευσή σας. Και από τη στιγμή που είναι εκεί έξω στο χώρο του έργου, οποιοσδήποτε μπορεί να έχει πρόσβαση σε αυτό και ενδεχομένως να παραβιάσει την ασφάλεια τη δική σας ή της ομάδας σας.

Αυτά τα ατυχήματα είναι ίσως ακόμη καλύτεροι λόγοι για να διαγράψετε μια δέσμευση από έναν απλό κακό κώδικα. Μπορείτε να επεξεργαστείτε τον ελαττωματικό κώδικα και να μην ανησυχείτε μήπως παραμείνει στο ιστορικό του έργου, αλλά αυτό δεν είναι ένας κίνδυνος που θα θέλατε να αναλάβετε με ευαίσθητα δεδομένα. Για παράδειγμα, εάν δεσμεύσετε κατά λάθος ένα αρχείο που περιέχει κλειδιά API, η κατάργηση αυτής της δέσμευσης εμποδίζει αυτό το κλειδί να πέσει σε λάθος χέρια.

Διατηρώντας την Ιστορία Καθαρή

Ένας άλλος σοβαρός λόγος για να διαγράψετε μια δέσμευση Git είναι να διατηρήσετε το ιστορικό του έργου σας καθαρό και απλό. Καθώς εργάζεστε στο έργο, το ιστορικό δεσμεύσεών σας γίνεται όλο και πιο γεμάτο με μικρές ενημερώσεις, πειράματα ή αλλαγές που δεν είναι πλέον σχετικές. Όταν θέλετε να ανατρέξετε στην ιστορία για οποιονδήποτε λόγο, όπως για να καταλάβετε γιατί κάνατε μια συγκεκριμένη αλλαγή ή να επιστρέψετε σε μια σταθερή κατάσταση μετά από ένα πείραμα, ένα ακατάστατο ιστορικό μπορεί να γίνει πρόβλημα.

Διαγράφοντας περιττές δεσμεύσεις, διατηρείτε το ιστορικό του έργου σας τακτοποιημένο και εύκολο για εσάς και τους άλλους στην ομάδα σας να το παρακολουθείτε. Αυτό είναι ακόμη πιο χρήσιμο πριν από τη συγχώνευση ενός κλάδου, ώστε να μπορείτε να παρουσιάσετε ένα σαφές, συνοπτικό και σχετικό ιστορικό σε όποιον εξετάζει τον κώδικά σας. Για παράδειγμα, εάν έχετε πολλές δεσμεύσεις που ήταν απλώς μικρές τροποποιήσεις σε ένα χαρακτηριστικό, μπορεί να θέλετε να τις συνθλίψετε σε μία μόνο δέσμευση για να διατηρήσετε το ιστορικό σας τακτοποιημένο.

Βέλτιστες πρακτικές και συμβουλές

Προτού διαγράψετε μια δέσμευση, ακολουθήστε ορισμένες βέλτιστες πρακτικές για να διατηρήσετε το έργο σας λειτουργικό και να αποφύγετε ανεπιθύμητες συνέπειες.

Δημιουργήστε αντίγραφα ασφαλείας της εργασίας σας

Προτού διαγράψετε οποιαδήποτε δέσμευση στο Git, είναι καλή ιδέα να δημιουργήσετε αντίγραφα ασφαλείας της εργασίας σας, ακόμα κι αν πιστεύετε ότι μπορεί να μην αξίζει να κρατήσετε. Μπορεί να φαίνεται σαν επιπλέον δουλειά, αλλά ένα αντίγραφο ασφαλείας είναι ένα δίχτυ ασφαλείας σε περίπτωση που τα πράγματα δεν πάνε όπως τα σχεδίαζαν.

Μπορείτε να δημιουργήσετε ένα αντίγραφο ασφαλείας δημιουργώντας ένα νέο κλάδο που αντικατοπτρίζει την τρέχουσα κατάσταση του αποθετηρίου σας. Για παράδειγμα, προτού διαγράψετε μια δέσμευση που εισήγαγε μια νέα δυνατότητα, δημιουργήστε έναν κλάδο αντιγράφων ασφαλείας "feature-backup". Αυτό θα σας δώσει την ελευθερία να πειραματιστείτε και να διαγράψετε δεσμεύσεις χωρίς να φοβάστε ότι θα χάσετε σημαντική δουλειά. Έτσι, αν αργότερα συνειδητοποιήσετε ότι χρειάζεστε κάτι από το διαγραμμένο commit, δεν το έχετε χάσει οριστικά. Εάν αποφασίσετε ότι δεν χρειάζεστε πλέον αυτό το αντίγραφο ασφαλείας, μπορείτε να διαγράψετε τον κλάδο Git .

Μην διαγράψετε τις δημόσιες δεσμεύσεις

Όταν εργάζεστε με δημόσια αποθετήρια, ειδικά σε έργα ανοιχτού κώδικα ή ομαδικά περιβάλλοντα, θα πρέπει να είστε ιδιαίτερα προσεκτικοί σχετικά με τη διαγραφή των δεσμεύσεων. Μόλις μια δέσμευση προωθηθεί σε ένα δημόσιο αποθετήριο και άλλοι την έχουν αποσύρει, η διαγραφή αυτής της δέσμευσης μπορεί να μπερδέψει ή να αποσπάσει την προσοχή όλων των εμπλεκομένων και να διαταράξει την εργασία. Είναι μια μορφή να τραβάτε ένα χαλί από κάτω από κάποιον – όχι μια ευχάριστη εμπειρία, αλλά μάλλον απρόσεκτη. Εάν πρέπει να διαγράψετε μια δέσμευση που είναι ήδη δημόσια, ενημερώστε την ομάδα σας ή τους συνεργάτες του έργου εκ των προτέρων, ώστε να γνωρίζουν τι συμβαίνει. Έτσι, όλοι γνωρίζουν και μπορούν να προσαρμόσουν ανάλογα τη δουλειά τους.

Χρησιμοποιήστε το Revert για Public Repos

Εάν εξακολουθείτε να θέλετε να αναιρέσετε τις αλλαγές σε ένα δημόσιο χώρο αποθήκευσης, αντί να διαγράψετε οριστικά μια δέσμευση, μπορείτε να επαναφέρετε μια συγχώνευση στο Git . Σε αντίθεση με το git reset, το οποίο ουσιαστικά ξαναγράφει το ιστορικό, το "git revert" δημιουργεί μια νέα δέσμευση που αναιρεί τις αλλαγές που έγιναν σε μια προηγούμενη δέσμευση.

Επομένως, η χρήση αυτής της εντολής είναι πολύ πιο ασφαλής και πιο διαφανής, ειδικά όταν εργάζεστε με άλλους. Επικοινωνείτε ανοιχτά στα μέλη της ομάδας σας ότι μπορεί να έχετε κάνει ένα λάθος και επιστρέφετε μια δέσμευση που το διορθώνει. Εάν προωθήσατε μια δέσμευση με ένα σημαντικό σφάλμα, το "git revert" σάς επιτρέπει να αναιρείτε γρήγορα τα αποτελέσματα αυτού του σφάλματος, ενώ διατηρείτε ανέπαφο το ιστορικό του έργου. Με αυτόν τον τρόπο διατηρείται η ακεραιότητα του ιστορικού του έργου και διατηρείται το τοπικό αποθετήριο του καθενός συνεπές με το τηλεχειριστήριο.

Κάντε διπλό έλεγχο πριν τη διαγραφή

Ένας από τους μεγαλύτερους κινδύνους κατά τη διαγραφή δεσμεύσεων στο Git είναι η απώλεια του χρόνου και της προσπάθειας που καταβάλλετε σε αυτήν τη δέσμευση. Για να το αποτρέψετε αυτό, ελέγξτε όλες τις αλλαγές σε κάθε δέσμευση που θέλετε να καταργήσετε. Χρησιμοποιήστε το "git log or git show [commit hash]" για να επιθεωρήσετε τις δεσμεύσεις. Εάν καταργείτε μια δέσμευση που πρόσθεσε πολλές λειτουργίες στον κώδικά σας, βεβαιωθείτε ότι το έργο σας δεν χρειάζεται αυτές τις λειτουργίες για να λειτουργήσει ή ότι αναπαράγονται αλλού.

Δέσμευση σε Αυτό

Υπάρχουν πολλοί λόγοι για να διαγράψετε μια δέσμευση στο Git, όπως να διατηρείτε το ιστορικό σας τακτοποιημένο, να αναιρείτε λάθη που προκαλούν σύγχυση ή να κρατάτε τις ευαίσθητες πληροφορίες σας ασφαλείς από τα αδιάκριτα βλέμματα. Όποιος κι αν είναι ο λόγος, να θυμάστε ότι υπάρχουν δύο τρόποι για να το κάνετε – "επαναφορά git" και "git revert", ο καθένας εξυπηρετεί διαφορετικό σκοπό, οπότε επιλέξτε αυτόν που είναι κατάλληλος για το έργο σας. Μπορείτε επίσης να μετονομάσετε τον κλάδο Git για περισσότερη σαφήνεια.

Χρειάστηκε ποτέ να διαγράψετε μια δέσμευση στο Git; Ποια ήταν η εμπειρία σας και έχετε κάποιες συμβουλές να μοιραστείτε; Αφήστε ένα σχόλιο παρακάτω και συνεχίστε τη συζήτηση.


Leave a Comment

Πώς να βρείτε και να διαγράψετε αποθηκευμένους κωδικούς πρόσβασης στο Microsoft Edge

Πώς να βρείτε και να διαγράψετε αποθηκευμένους κωδικούς πρόσβασης στο Microsoft Edge

Δείτε πώς μπορείτε να διατηρείτε τους κωδικούς πρόσβασής σας στον Microsoft Edge υπό έλεγχο και να αποτρέψετε το πρόγραμμα περιήγησης από το να αποθηκεύει τυχόν μελλοντικούς κωδικούς πρόσβασης.

Πώς να αλλάξετε το φόντο σας και να κάνετε την επιφάνεια εργασίας σας να φαίνεται θετικά μοναδική στα Windows 11

Πώς να αλλάξετε το φόντο σας και να κάνετε την επιφάνεια εργασίας σας να φαίνεται θετικά μοναδική στα Windows 11

Ακολουθήστε αυτόν τον οδηγό για το πώς να αλλάξετε το φόντο σας και να κάνετε την επιφάνεια εργασίας σας να φαίνεται θετικά μοναδική στα Windows 11.

Πώς να ενεργοποιήσετε τις συνδέσεις απομακρυσμένης επιφάνειας εργασίας στον υπολογιστή σας Windows 10

Πώς να ενεργοποιήσετε τις συνδέσεις απομακρυσμένης επιφάνειας εργασίας στον υπολογιστή σας Windows 10

Ανακαλύψτε πώς να ενεργοποιήσετε τις εισερχόμενες συνδέσεις απομακρυσμένης επιφάνειας εργασίας στα Windows 10 και να αποκτήσετε πρόσβαση στον υπολογιστή σας απομακρυσμένα.

Πώς να αυξήσετε τη φωτεινότητα της οθόνης στα Windows 10

Πώς να αυξήσετε τη φωτεινότητα της οθόνης στα Windows 10

Ανακαλύψτε πώς να ρυθμίσετε τη φωτεινότητα της οθόνης στα Windows 10 για καλύτερη οπτική εμπειρία και διάρκεια ζωής μπαταρίας.

Πώς να αλλάξετε το θέμα, τα χρώματα και πολλά άλλα για να δημιουργήσετε μια εκπληκτική εμπειρία επιφάνειας εργασίας στα Windows 11

Πώς να αλλάξετε το θέμα, τα χρώματα και πολλά άλλα για να δημιουργήσετε μια εκπληκτική εμπειρία επιφάνειας εργασίας στα Windows 11

Ακολουθεί ένας οδηγός για το πώς να αλλάξετε το θέμα, το χρώμα και πολλά άλλα στα Windows 11 για να δημιουργήσετε μια εκπληκτική εμπειρία επιφάνειας εργασίας.

Πώς να επαναφέρετε τον ήχο στον υπολογιστή μου

Πώς να επαναφέρετε τον ήχο στον υπολογιστή μου

Αν έχετε πρόβλημα με τον ήχο στον υπολογιστή σας με Windows 10, ακολουθήστε αυτά τα βήματα για να επαναφέρετε τον ήχο άμεσα.

Windows 10 How-to: Συγχρονισμός ρυθμίσεων υπολογιστή σε όλες τις συσκευές Windows 10

Windows 10 How-to: Συγχρονισμός ρυθμίσεων υπολογιστή σε όλες τις συσκευές Windows 10

Ανακαλύψτε πώς να συγχρονίσετε τις ρυθμίσεις σας στα Windows 10 με απόλυτη ευκολία. Αυτή η οδηγία θα σας καθοδηγήσει στη διαδικασία συγχρονισμού.

Πώς να δείτε λεπτομερείς πληροφορίες συστήματος στα Windows 10

Πώς να δείτε λεπτομερείς πληροφορίες συστήματος στα Windows 10

Ανακαλύψτε πώς να δείτε λεπτομερείς πληροφορίες για το υλικό και το λογισμικό του υπολογιστή σας στα Windows 10 με τον οδηγό μας.

Πώς να διατηρήσετε την κατάσταση των ομάδων ενεργή / πράσινη / online / διαθέσιμη;

Πώς να διατηρήσετε την κατάσταση των ομάδων ενεργή / πράσινη / online / διαθέσιμη;

Μάθετε πώς να διατηρείτε την κατάσταση σας διαθέσιμη στο Microsoft Teams για καλύτερη επικοινωνία χρησιμοποιώντας απλές ρυθμίσεις.

Πώς να δείτε τους αποθηκευμένους κωδικούς πρόσβασης στο Chrome

Πώς να δείτε τους αποθηκευμένους κωδικούς πρόσβασης στο Chrome

Ανακαλύψτε πώς να προβάλλετε τους αποθηκευμένους κωδικούς πρόσβασης στο Google Chrome με απλές και ασφαλείς μεθόδους.