Πώς σκουπίζετε όλες τις δεσμεύσεις σε ένα;

How Do You Squash All Commits One



Το Git Squash είναι μια τεχνική που σας επιτρέπει να κάνετε μια σειρά αλλαγών στις δεσμεύσεις και στη συνέχεια να την ενοποιήσετε σε μία δέσμευση. Ας εξηγήσουμε με τη βοήθεια ενός παραδείγματος, ας υποθέσουμε ότι έχετε n αριθμό δεσμεύσεων και όταν εφαρμόζετε git squashing σε αυτές, μπορείτε να στριμώξετε ή να συμπιέσετε όλες τις «n» δεσμεύσεις σε μία μόνο δέσμευση. Το Git squash χρησιμοποιείται για την αλλαγή πολλών μεγάλων δεσμεύσεων σε μια μικρή μοναδική δέσμευση. Έτσι, μπορείτε να κάνετε το git log σαφέστερο. Μπορείτε επίσης να συγχωνεύσετε υποκαταστήματα χρησιμοποιώντας την τεχνική squashing. Είναι μια βέλτιστη πρακτική να στριμώχνετε πάντα τις δεσμεύσεις και να τις επαναπροσδιορίζετε με τον κύριο ή τον μητρικό κλάδο.

Αυτό το άρθρο θα σας περιγράψει πώς να σκουπίσετε όλες τις δεσμεύσεις σε μία μόνο δέσμευση στο git. Έχουμε εφαρμόσει όλα τα βήματα στη διανομή Linux CentOS 8.







Squash δεσμεύεται σε ένα με git

Μπορείτε να εφαρμόσετε το git squashing στα ακόλουθα βήματα:



Βήμα 1: Επιλέξτε Έναρξη δέσμευσης

Για να καθορίσετε πόσες δεσμεύσεις χρειάζεστε για να σκουπίσετε, ακολουθήστε την ακόλουθη εντολή στο τερματικό:



$ git log





Τώρα, θα καλέσετε το git για να ξεκινήσετε μια διαδραστική συνεδρία rebase χρησιμοποιώντας την ακόλουθη εντολή:

$ git rebase -i HEAD ~ N

Στο παραπάνω HEAD ~ N, το ‘N’ είναι ο συνολικός αριθμός των δεσμεύσεων που έχετε καθορίσει από την εντολή ‘git log’. Ας υποθέσουμε ότι ο αριθμός των δεσμεύσεων είναι 4. Τώρα, η εντολή θα αλλάξει στην ακόλουθη μορφή:

$ git rebase -i HEAD 4 ~

Η ακόλουθη λίστα δεσμεύσεων θα εμφανιστεί στο τερματικό όπου το καθένα δεσμεύεται να κοιτάζει με τη λέξη επιλογή.

Βήμα 2: Αλλάξτε την επιλογή σε Squash

Εδώ, θα επισημάνουμε όλες τις δεσμεύσεις ως καταργήσιμες, αφήνοντας την πρώτη δέσμευση που θα χρησιμοποιηθεί ως αφετηρία. Έτσι, αλλάξτε τον επεξεργαστή vim στη λειτουργία εισαγωγής πατώντας το «i» και αλλάξτε την επιλογή all pick commit στο σκουός εκτός από την πρώτη δέσμευση. Τώρα, πατήστε ‘Esc’ για να αλλάξετε τη λειτουργία εισαγωγής και πατήστε ‘: wq!’ Για να αποθηκεύσετε όλες τις αλλαγές και κλείστε. Εάν χρησιμοποιείτε τον απλό επεξεργαστή κειμένου, μπορείτε απλά να αλλάξετε τη λέξη «επιλογή» σε «σκουός» και να αποθηκεύσετε τις αλλαγές. Μετά από αυτό, θα δείτε το ακόλουθο παράθυρο στο τερματικό:

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

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

συμπέρασμα

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