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

Αυτό το άρθρο είναι εδώ για να σας βοηθήσει να κάνετε μια μικρή φροντίδα στο GitHub και να σας δώσει μερικές ακόμη συμβουλές και κόλπα σχετικά με τα υποκαταστήματα Git και τη διαγραφή τους.
Διαγραφή υποκαταστήματος στο Git
Η διαγραφή ενός κλάδου στο Git δεν είναι περίπλοκη, αλλά τα βήματα μπορεί να είναι λίγο διαφορετικά ανάλογα με την τοποθεσία του υποκαταστήματός σας. Δείτε πώς μπορείτε να διαγράψετε έναν τοπικό κλάδο Git:
- Μεταβείτε στο υποκατάστημα που θέλετε να διαγράψετε.
- Ανοίξτε το Terminal και εκτελέστε τον κλάδο git για να δείτε όλα τα υποκαταστήματά σας.

- Εάν βρίσκεστε στο υποκατάστημα που θέλετε να καταργήσετε, κάντε εναλλαγή χρησιμοποιώντας το git checkout [other_branch_name] .

- Χρησιμοποιήστε το git branch -d [branch_name] για να διαγράψετε τον κλάδο. Να θυμάστε ότι η σημαία -d διασφαλίζει ότι δεν διαγράφετε μη συγχωνευμένους κλάδους.

Η διαγραφή ενός απομακρυσμένου κλάδου είναι ελαφρώς διαφορετική:
- Χρησιμοποιήστε το git push origin –διαγραφή [branch_name] .

- Ελέγξτε ξανά ότι διαγράψατε το σωστό αναφέροντας όλους τους κλάδους με git branch -a .

Γιατί να διαγράψετε ένα υποκατάστημα;
Η διαγραφή υποκαταστημάτων στο Git είναι κάτι που κάνουν συχνά οι προγραμματιστές για διάφορους λόγους:
Εκκαθάριση έργου
Μετά την επιτυχή συγχώνευση ενός κλάδου χαρακτηριστικών στον κύριο ή τον κλάδο ανάπτυξης, αυτός ο κλάδος χαρακτηριστικών γίνεται συχνά περιττός. Σκεφτείτε το ως εκκαθάριση χώρου εργασίας μετά την ολοκλήρωση ενός έργου, απλώς σε ψηφιακή μορφή.
Όπως δεν χρειάζεστε πλέον τα προσχέδια και τα σκίτσα επειδή το τελικό προϊόν είναι έτοιμο, στο Git, αυτός ο καθαρισμός μειώνει την ακαταστασία και σας επιτρέπει να εστιάσετε σε ενεργά κλαδιά. Για παράδειγμα, εάν μόλις ξεκινήσατε μια νέα δυνατότητα στην εφαρμογή σας και έχετε συγχωνεύσει τον κλάδο "νέων δυνατοτήτων", η διαγραφή του μετά τη συγχώνευση διατηρεί τη λίστα υποκαταστημάτων σας σχετική και διαχειρίσιμη.
Λάθη και πειράματα
Όπως κάθε άλλο είδος έργου, δεν εξελίσσεται κάθε ιδέα και δεν οδηγεί κάθε κλάδος σε ένα επιτυχημένο χαρακτηριστικό. Μερικές φορές, οι κλάδοι δημιουργούνται επίσης κατά λάθος (όπως πληκτρολογώντας "git checkout -b" με λάθος όνομα) ή χρησιμοποιούνται για βραχυπρόθεσμα πειράματα.
Αυτά τα κλαδιά μπορεί να συσσωρευτούν, να σας μπερδέψουν και να γεμίσουν το έργο σας. Είναι όλα ένα φυσικό μέρος της εκμάθησης και του πειραματισμού στην κωδικοποίηση. Μπορείτε να δημιουργήσετε ένα υποκατάστημα για να δοκιμάσετε μια νέα βιβλιοθήκη. αν δεν ανταποκρίνεται στις προσδοκίες σας, δεν υπάρχει λόγος να το διατηρήσετε.
Διατήρηση της ομάδας σε καλό δρόμο
Όταν εργάζεστε με μια ομάδα, ειδικά όταν πολλά άτομα εργάζονται σε διαφορετικές λειτουργίες, έχετε ακόμη περισσότερα κίνητρα να διατηρήσετε το αποθετήριο καθαρό και οργανωμένο. Παλιά ή άσχετα υποκαταστήματα μπορεί να μπερδέψουν τους ανθρώπους και να προκαλέσουν σφάλματα.
Μόλις εξαφανιστούν αυτά τα υποκαταστήματα, όλοι στην ομάδα είναι πιο πιθανό να βρίσκονται στην ίδια σελίδα. Αποφεύγει επίσης τον κίνδυνο να εργαστείτε κατά λάθος σε παλιό κώδικα. Σκεφτείτε μια ομάδα που εργάζεται σε μια εφαρμογή Ιστού, έχοντας υποκαταστήματα για ολοκληρωμένες λειτουργίες όπως "ενημέρωση σύνδεσης" ή "νέο-ui" που εξακολουθούν να υπάρχουν. Μπορεί να είναι παραπλανητικό. Το κλάδεμα αυτών των κλαδιών καθιστά ευκολότερη και χωρίς ανησυχία την εύρεση αυτού που θέλετε να εργαστείτε.
Βέλτιστες πρακτικές και συμβουλές
Όταν διαγράφετε υποκαταστήματα, λάβετε υπόψη αυτές τις συμβουλές:
Δημιουργία αντιγράφων ασφαλείας πριν από τη διαγραφή
Πριν πατήσετε το κουμπί διαγραφής σε ένα κλάδο, είναι έξυπνο να δημιουργήσετε αντίγραφα ασφαλείας πρώτα. Γιατί μπορεί να το θέλετε αν το υποκατάστημα δεν είναι πλέον απαραίτητο; Επειδή μερικές φορές, μπορεί να συνειδητοποιήσετε λίγο πολύ αργά ότι υπήρχε ένα κομμάτι κώδικα ή μια συγκεκριμένη υλοποίηση σε αυτόν τον κλάδο που εξακολουθείτε να χρειάζεστε.
Μπορείτε να δημιουργήσετε ένα αντίγραφο ασφαλείας δημιουργώντας ένα αντίγραφο του κλάδου με διαφορετικό όνομα, όπως git branch [backup-branch-name] [branch-to-delete] . Με αυτόν τον τρόπο, εάν ποτέ χρειαστεί να επισκεφτείτε ξανά αυτό το υποκατάστημα, θα έχετε τα πάντα αποθηκευμένα με ασφάλεια.
Χρησιμοποιήστε την αναγκαστική διαγραφή με φειδώ
Η σημαία "-D" είναι ένα ισχυρό χαρακτηριστικό στην εργαλειοθήκη Git, αλλά θα πρέπει να χρησιμοποιείται με προσοχή. Αυτή η εντολή (git branch -D [branch-name]) με κεφαλαία -D (force delete) θα διαγράψει αναγκαστικά έναν κλάδο. Σε αντίθεση με την εντολή πεζών –d, η οποία δίνει μια προειδοποίηση, αυτή αγνοεί τυχόν μη συγχωνευμένες αλλαγές και διαγράφει μόνιμα τα δεδομένα.
Αυτή η εντολή είναι χρήσιμη όταν είστε απολύτως βέβαιοι ότι οι αλλαγές του κλάδου δεν αξίζει πλέον να διατηρούνται ή εάν μια συγχώνευση έχει πάει στραβά και θέλετε να ξεκινήσετε από την αρχή. Ωστόσο, ελέγχετε πάντα πριν το χρησιμοποιήσετε.
Εκκαθάριση απομακρυσμένων αναφορών
Αφού διαγράψετε ένα υποκατάστημα εξ αποστάσεως, αξίζει να καθαρίσετε τις τοπικές σας αναφορές σε αυτό το υποκατάστημα, ώστε να μην το αναφέρετε κατά λάθος. Η εντολή "git fetch -prune" κάνει ακριβώς αυτό. Λέει στο τοπικό σας Git να αφαιρέσει αναφορές σε απομακρυσμένα υποκαταστήματα που δεν υπάρχουν πλέον, διατηρώντας το τοπικό αποθετήριο ενημερωμένο και αποφεύγοντας οποιαδήποτε σύγχυση με άσχετα υποκαταστήματα.
Κοινές παγίδες και πώς να τις αποφύγετε
Η διαγραφή υποκαταστημάτων μπορεί να έχει κάποιες παγίδες, ειδικά αν βιάσατε την απόφασή σας και δεν είχατε σκοπό να διαγράψετε κάτι. Ας δούμε μερικές από αυτές τις παγίδες και πώς να αποφύγετε να πέσετε σε αυτές.
Χαμένη Εργασία
Ένας από τους μεγαλύτερους κινδύνους κατά τη διαγραφή υποκαταστημάτων στο Git είναι η απώλεια πολύτιμης εργασίας. Αυτό συμβαίνει συνήθως όταν διαγράφετε έναν κλάδο πριν συγχωνεύσετε πλήρως ή αποθηκεύσετε τις αλλαγές του αλλού. Μπορεί να οφείλεται σε ένα απλό σφάλμα, αλλά μπορεί επίσης να οφείλεται σε τεχνικό πρόβλημα. Για παράδειγμα, θα μπορούσε να υπήρχε πρόβλημα με τη σύνδεση στο διαδίκτυο ή σφάλμα υπολογιστή.
Ελέγξτε ξανά ότι όλες οι αξιόλογες αλλαγές ή δεσμεύσεις από το υποκατάστημα έφτασαν στον κύριο ή αναπτυξιακό κλάδο σας για να το αποφύγετε. Μπορείτε να χρησιμοποιήσετε το αρχείο καταγραφής git [branch-name] για να ελέγξετε το ιστορικό δέσμευσης και να δείτε τι πρέπει να κρατήσετε. Εάν εργάζεστε σε κάτι πειραματικό ή μη έτοιμο για τον κύριο κλάδο, η αποθήκευση του με διαφορετικό τρόπο, όπως η προσθήκη ετικετών ή η αποθήκευση, θα μπορούσε να είναι μια καλή λύση. Σαν ένα σκίτσο μιας ιδέας, μπορεί να μην το χρειάζεστε τώρα, αλλά θα μπορούσε να είναι χρήσιμο αργότερα.
Σύγχυση στις ομάδες
Όταν εργάζεστε ως μέρος μιας ομάδας, η διαγραφή υποκαταστημάτων μπορεί μερικές φορές να προκαλέσει σύγχυση στα άλλα μέλη της ομάδας, ειδικά εάν τα μέλη της ομάδας δεν γνωρίζουν τις αλλαγές. Εάν εργάζεστε σε ένα ομαδικό έργο και κάποιος αφαιρεί ένα εργαλείο που σχεδιάζατε να χρησιμοποιήσετε - μπορεί να απορρίψει σημαντικά τη ροή εργασίας σας.
Επομένως, πριν διαγράψετε οτιδήποτε, μιλήστε με τα μέλη της ομάδας σας και δείτε αν είναι εντάξει να το κάνετε. Όταν αποφασίσετε να εκκαθαρίσετε ένα υποκατάστημα, ενημερώστε την ομάδα σας, ειδικά εάν άλλοι ενδέχεται να χρησιμοποιούν ή να παρακολουθούν το ίδιο υποκατάστημα. Εργαλεία όπως προγράμματα παρακολούθησης προβλημάτων ή συνομιλίες ομάδας μπορεί να είναι χρήσιμα για αυτό.
Επίσης, είναι καλό να υπάρχει μια σύμβαση ονομασίας για υποκαταστήματα (για παράδειγμα, «feature/», «bugfix/», κ.λπ.), που περιγράφει τον σκοπό κάθε κλάδου και εάν είναι ασφαλές να διαγραφεί. Όταν πιστεύετε ότι ένα υποκατάστημα πρέπει να πάει, ενημερώστε τους άλλους ότι δεν είναι πλέον χρήσιμο και ότι μπορεί να αποσυρθεί.
Git Decluttering
Είναι απλό να διαγράψετε έναν κλάδο Git, αν σκεφτείτε πριν κάνετε κλικ. Διαφορετικά, μπορεί να είναι απίστευτα απογοητευτικό αν καταλήξετε να χάσετε σημαντική εργασία εξαιτίας μιας τυχαίας διαγραφής. Αυτό ισχύει ιδιαίτερα αν εργάζεστε σε μια ομάδα προγραμματιστών. Αλλά εκεί είναι που παίζει ρόλο η αποτελεσματική επικοινωνία.
Σας έχει πάει ποτέ στραβά μια διαγραφή υποκαταστήματος; Έχετε άλλες συμβουλές για το χειρισμό των υποκαταστημάτων στο Git; Μοιραστείτε τις σκέψεις και τις συμβουλές σας στην παρακάτω ενότητα σχολίων.