Git: Τροποποίηση ενός υπάρχοντος μηνύματος δέσμευσης

Τα λάθη είναι κοινά, τα κάνουμε όλοι. Γι' αυτό βάζουν γόμες στα μολύβια. Και αυτό δεν είναι διαφορετικό με εργαλεία όπως το Git. Ενώ ορισμένες αλλαγές μπορεί να είναι δύσκολο να αναιρεθούν, συνήθως υπάρχει τρόπος.

Τι γίνεται λοιπόν αν θέλετε να τροποποιήσετε ένα υπάρχον μήνυμα δέσμευσης; Ευτυχώς αυτό είναι απλό να γίνει στο Git, αλλά η μέθοδος μπορεί να αλλάξει λίγο ανάλογα με ορισμένους παράγοντες.

Διορθώστε την τελευταία δέσμευση, που δεν έχει ακόμη ωθηθεί στο Remote

Αυτή είναι η απλούστερη περίπτωση αφού δεν χρειάζεται να τροποποιήσετε ένα απομακρυσμένο αποθετήριο, απλά πρέπει να τροποποιήσετε το δικό σας. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

$ git commit --amend

Η εκτέλεση αυτής της εντολής θα ανοίξει ένα πρόγραμμα επεξεργασίας όπου μπορείτε να τροποποιήσετε το τελευταία δέσμευση μηνύματος. Μόλις ολοκληρώσετε και αποθηκεύσετε/κλείσετε το πρόγραμμα επεξεργασίας, το μήνυμα δέσμευσης θα αλλάξει.

Προσωπικά, προτιμώ να κάνω τα περισσότερα πράγματα στη γραμμή εντολών, τα οποία μπορείτε να κάνετε προσθέτοντας ένα όρισμα και ένα μήνυμα στην παραπάνω εντολή:

$ git commit --amend -m "Added a new file"

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

Διορθώστε το Last Commit, Pushed to Remote

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

Το πρώτο βήμα είναι να τροποποιήσετε την τελευταία δέσμευση, όπως κάναμε στην προηγούμενη ενότητα:

$ git commit --amend -m "Added a new file"

Στη συνέχεια, πρέπει να προωθήσετε αυτές τις αλλαγές στο απομακρυσμένο αποθετήριο. Ωστόσο, αυτό πρέπει να γίνει χρησιμοποιώντας το --force σημαία.

$ git push <remote> <branch> --force

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

Να ξέρετε ότι πιέζοντας το σπρώξιμο, θα το κάνετε επίσης χάνουν τυχόν δεσμεύσεις στο τοπικό υποκατάστημα που δεν έχετε ήδη στο τοπικό σας υποκατάστημα. Προχωρήστε με προσοχή!

Ρίξτε μια ματιά στον πρακτικό μας οδηγό για την εκμάθηση του Git, με βέλτιστες πρακτικές, πρότυπα αποδεκτά από τον κλάδο και συμπεριλαμβανόμενο φύλλο εξαπάτησης. Σταματήστε τις εντολές του Git στο Google και πραγματικά μαθαίνουν το!

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

Χρησιμοποιήστε το Interactive Rebase

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

Για να ξεκινήσετε την επαναφορά, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

$ git rebase -i HEAD~n

Εδώ, n είναι ο αριθμός των δεσμεύσεων που θέλετε να επιθεωρήσετε και να επεξεργαστείτε. Στη συνέχεια, θα δείτε μια λίστα με δεσμεύσεις, παρόμοια με αυτή:

$ $ git rebase -i HEAD~4
pick 788ebf0 Oops, I forgot to add a new file
pick ced1329 Fixed a super critical bug
pick 5e9cdc5 Added a new file



















Όπως μπορείτε να δείτε, παρατίθενται όλες οι τελευταίες N δεσμεύσεις και μπορείτε να τροποποιήσετε τα μηνύματά τους όπως απαιτείται.

Σφραγίδα ώρας:

Περισσότερα από Stackabuse