Ένα από τα ισχυρότερα χαρακτηριστικά του Git είναι τα ελαφριά κλαδιά του. Σας επιτρέπουν να εργάζεστε αποτελεσματικά σε παράλληλα στάδια ανάπτυξης. Ένας προγραμματιστής μπορεί ακόμη και να δημιουργήσει μεμονωμένους κλάδους για ξεχωριστά σφάλματα. Τόσο στο χρόνο όσο και στο χώρο, τα υποκαταστήματα είναι σχεδόν χωρίς κόστος.
Πολλές ροές εργασίας git ασχολούνται τόσο με μακροπρόθεσμα όσο και με προσωρινά καταστήματα. Επομένως, υπάρχει συχνά ανάγκη διαγραφής κλάδων κατά την ανάπτυξη. Περιστασιακά υπάρχει ανάγκη διαγραφής κοινόχρηστων κλάδων, από απομακρυσμένο διακομιστή, καθώς και τοπικών κλάδων.
Γιατί να διαγράψετε ένα υποκατάστημα;
Πρώτον, αν είστε ακόμα να καταφέρεις να ασχοληθείς με το git, υπάρχει μια πολύ καλή πιθανότητα να δημιουργήσετε ένα υποκατάστημα και στη συνέχεια να αποφασίσετε ότι δεν χρειάζεται. Ή μπορεί να πειραματιστείτε με κλάδους και να θέλετε να καθαρίσετε τον εαυτό σας. Αυτό είναι καλό, καθώς η διακλάδωση στο git είναι μια ελαφριά λειτουργία. Είναι πολύ γρήγορο και χρησιμοποιεί αποτελεσματικά χώρο στο δίσκο.
Σε αυτό το άρθρο θα δούμε τι σημαίνει διακλάδωση του κώδικά σας, πώς να το κάνετε και τρόπους διαχείρισης ενημερώσεων στον "κύριο" κλάδο git.
Ως αποτέλεσμα, πολλές ροές εργασίας ανάπτυξης git ενθαρρύνουν τη διακλάδωση, ακόμη και για πολύ μικρές ή σύντομες εργασίες. Για παράδειγμα, μια κοινή στρατηγική είναι να δημιουργήστε ένα υποκατάστημα για μια επιδιόρθωση σφαλμάτων. Αυτό ισχύει ακόμη και αν περιλαμβάνει μόνο έναν συντάκτη που κάνει μια αλλαγή μιας γραμμής σε ένα αρχείο.
Για αυτούς τους λόγους, η δημιουργία και η διαγραφή κλάδων είναι λειτουργίες που πρέπει να γίνουν κατανοητές. Ενδέχεται να βρεθείτε συχνά να διαγράφετε κλάδους κατά τη διάρκεια μιας τυπικής ροής εργασίας ανάπτυξης.
Ένα δείγμα αποθετηρίου με κλάδους
Τα ακόλουθα παραδείγματα αναφέρονται σε ένα δείγμα αποθετηρίου με την ακόλουθη δομή:
$ git branch -vv
1 dev 1ae41e8 [origin / dev] πρώτη δέσμευση
2 * main 1ae41e8 [origin / main] πρώτη δέσμευση
Σημειώστε ότι κάθε τοπικός κλάδος έχει έναν αντίστοιχο ανάντη κλάδο από το τηλεχειριστήριο: προέλευση.
Διαγραφή κλάδου χρησιμοποιώντας τη γραμμή εντολών
Η βασική σύνταξη εντολών για τη διαγραφή ενός κλάδου είναι:
git branch (-d | -D) [-r] ...
Η απλούστερη μορφή της εντολής διαγράφει έναν τοπικό κλάδο, υπό την προϋπόθεση ότι έχουν συγχωνευτεί όλες οι αλλαγές της:
$ git branch -d dev
Δεν μπορείτε να διαγράψετε τον κλάδο που είναι ενεργός αυτήν τη στιγμή. αν προσπαθήσετε να το κάνετε, θα λάβετε ένα μήνυμα σαν αυτό:
Σφάλμα: Δεν είναι δυνατή η διαγραφή του κλάδου "main" check out στο "/ tmp / sandbox"
Όταν τα πράγματα πάνε σωστά, θα δείτε ένα μήνυμα επιβεβαίωσης:
Διαγράφηκε το υποκατάστημα dev (ήταν 1ae41e8).
Εάν διαγράψετε έναν κλάδο που υπάρχει μόνο τοπικά, με μη συγχωνευμένες αλλαγές, θα χάσετε αυτές τις αλλαγές. Επομένως, το git θα αρνηθεί να διαγράψει έναν κλάδο σε μια τέτοια κατάσταση, από προεπιλογή:
σφάλμα: Ο κλάδος «dev» δεν συγχωνεύεται πλήρως.
Εάν είστε βέβαιοι ότι θέλετε να το διαγράψετε, εκτελέστε το "git branch -D dev".
Όπως ενημερώνει το μήνυμα σφάλματος, μπορείτε να επιβάλλετε τη διαγραφή με το -ΡΕ σημαία. Ωστόσο, το git θα σας επιτρέψει να διαγράψετε ένα μη συγχωνευμένο τοπικό υποκατάστημα εάν υπάρχει απομακρυσμένα:
προειδοποίηση: διαγραφή κλάδου "dev" που έχει συγχωνευθεί σε
"refs / remotes / origin / dev", αλλά δεν έχουν ακόμη συγχωνευθεί στο HEAD.
Διαγράφηκε το υποκατάστημα dev (ήταν 9a6d20b).
Η διαγραφή ενός απομακρυσμένου κλάδου είναι πολύ διαφορετική. Θα χρησιμοποιήσετε το σκατά εντολή μαζί με το -ρε σημαία για διαγραφή. Μετά από αυτό, δώστε το όνομα του τηλεχειριστηρίου (συχνά προέλευση) και το όνομα υποκαταστήματος:
$ git push -d origin dev
Προς το github.com: bobbykjack / sandbox.git
- [διαγράφηκε] dev
Διαγραφή τοπικών και απομακρυσμένων κλάδων με το GitHub Desktop
Σε αντίθεση με το πρόγραμμα git γραμμής εντολών, Η εφαρμογή επιτραπέζιου υπολογιστή του GitHub θα σας επιτρέψει να διαγράψετε μόνο τον ενεργό κλάδο. Μπορείτε να πραγματοποιήσετε αυτήν την ενέργεια μέσω του Κλαδί μενού, επιλέγοντας το Διαγράφω επιλογή και επιβεβαίωση:
Το GitHub Desktop δεν θα σας επιτρέψει να διαγράψετε τον προεπιλεγμένο κλάδο — π.χ. main - ακόμα κι αν το ίδιο το git το υποστηρίζει. Εάν ο προεπιλεγμένος κλάδος είναι αυτός που είναι ενεργός αυτήν τη στιγμή, η εφαρμογή απενεργοποιεί την ενέργεια μενού.
Εάν το υποκατάστημα αντιπροσωπεύει επίσης ένα απομακρυσμένο υποκατάστημα, το GitHub Desktop δίνει τη δυνατότητα να το διαγράψετε και από το τηλεχειριστήριο:
Διαγραφή κλάδων χρησιμοποιώντας το GitKraken
GitKraken εμφανίζει τα τοπικά και απομακρυσμένα κλαδιά του αποθετηρίου σας στην αριστερή πλευρική γραμμή. Πρέπει να διαγράψετε το καθένα χωριστά.
Τοποθετήστε τον δείκτη του ποντικιού πάνω από το κατάλληλο όνομα κλάδου και κάντε κλικ στο Κλαδί μενού ενεργειών που μοιάζει με τρεις κάθετες κουκκίδες. Από το μενού, επιλέξτε Διαγράφω :
Θα δείτε ένα μήνυμα επιβεβαίωσης που θα σας ενημερώνει ότι πρόκειται για καταστροφική λειτουργία. Μπορείτε να επιβεβαιώσετε ότι θέλετε να συνεχίσετε με το Διαγράφω κουμπί:
Αντικατοπτρίζοντας την προεπιλεγμένη συμπεριφορά του προγράμματος γραμμής εντολών git, πρέπει πρώτα να μεταβείτε σε κλάδο διαφορετικό από αυτό που διαγράφετε. Διαφορετικά, θα δείτε ένα μήνυμα σφάλματος:
Διαγραφή τοπικών και απομακρυσμένων κλάδων με χρήση πύργου
Διαγραφή υποκαταστήματος με Πύργος μοιάζει πολύ με τη διαγραφή ενός υποκαταστήματος με το GitKraken. Τοπικά και απομακρυσμένα κλαδιά εμφανίζονται σε ένα πλαίσιο στην αριστερή πλευρά. Κάντε δεξί κλικ σε οποιονδήποτε κλάδο και επιλέξτε την επιλογή Διαγραφή από το μενού περιβάλλοντος:
Μια βασική διαφορά είναι ότι ένα απομακρυσμένο υποκατάστημα μπορεί να διαγραφεί μαζί με τον τοπικό κλάδο, κατά την επιβεβαίωση:
Διαγραφή υποκαταστήματος στο GitHub
Το GitHub λειτουργεί μόνο ως απομακρυσμένη πηγή, επομένως οι κλάδοι εκεί είναι απομακρυσμένοι από προεπιλογή. Εάν διαγράψετε ένα υποκατάστημα χρησιμοποιώντας τον ιστότοπο του GitHub, θα πρέπει να διαγράψετε το αντίστοιχο τοπικό υποκατάστημα χρησιμοποιώντας μία από τις άλλες μεθόδους εδώ.
Όπως και με την εφαρμογή GitHub Desktop, ο ιστότοπος του GitHub δεν θα σας επιτρέψει να διαγράψετε τον προεπιλεγμένο κλάδο. Η επιλογή απλά δεν εμφανίζεται. Ωστόσο, η διαγραφή ενός υποκαταστήματος είναι απλή. Από το αποθετήριο Κώδικας στη σελίδα, κάντε κλικ στο κλαδια δεντρου σύνδεσμος, εντοπίστε τον κλάδο για διαγραφή και, στη συνέχεια, κάντε κλικ στο Διαγραφή αυτού του κλάδου εικονίδιο, το οποίο μοιάζει με κάδο απορριμμάτων:
Λάβετε υπόψη ότι δεν υπάρχουν έλεγχοι για μη συγχωνευμένες αλλαγές, επομένως στο GitHub, το υποκατάστημα θα διαγραφεί απλώς αμέσως. Ωστόσο, δεδομένου ότι θα αντιπροσωπεύει πάντα έναν απομακρυσμένο κλάδο, αυτή πρέπει να είναι η συμπεριφορά που περιμένετε.
Λάβετε υπόψη ότι, μετά τη διαγραφή, θα δείτε ένα κουμπί στο Επαναφέρω το κλαδί. Ωστόσο, αυτό είναι απλά μια χρήσιμη λειτουργία αναίρεσης, σε περίπτωση που κάνετε κλικ στο εικονίδιο διαγραφής κατά λάθος. Μην βασίζεστε σε αυτήν, γιατί μόλις ανανεώσετε ή απομακρυνθείτε από τη σελίδα, θα χάσετε την επιλογή!
Διαγραφή τοπικών και απομακρυσμένων κλάδων στο Bitbucket
Το Bitbucket, όπως το GitHub, δεν σας επιτρέπει να διαγράψετε τον προεπιλεγμένο κλάδο. Το Bitbucket το αποκαλεί αυτό Κύριο κατάστημα σε Ρυθμίσεις αποθετηρίου. Μπορείτε να διαγράψετε οποιοδήποτε άλλο υποκατάστημα που αναφέρεται στο Κλαδια δεντρου καρτέλα, μέσω της αντίστοιχης Ενέργειες μενού:
Μπορείτε επίσης να διαγράψετε περισσότερους από έναν κλάδους ταυτόχρονα εάν κάνετε μια μεγάλη λειτουργία καθαρισμού:
Η διαγραφή κλάδων αποτελεί μέρος μιας τυπικής ροής εργασίας Git
Τα υποκαταστήματα Git μπορούν να περιπλέξουν τη ροή εργασίας σας, ειδικά με τα τοπικά, απομακρυσμένα και καταστήματα παρακολούθησης. Αλλά για απλή καθημερινή ανάπτυξη, είναι πιθανό να δημιουργείτε και να διαγράφετε τοπικά καταστήματα όλη την ώρα. Αυτή είναι μια βασική πτυχή μιας τυπικής ροής εργασίας git που πρέπει να εξοικειωθείτε.
Σε αυτό το άρθρο θα δούμε τι σημαίνει διακλάδωση του κώδικά σας, πώς να το κάνετε και τρόπους διαχείρισης ενημερώσεων στον "κύριο" κλάδο git.
- Προγραμματισμός
- GitHub

Ο Bobby είναι λάτρης της τεχνολογίας που εργάστηκε ως προγραμματιστής λογισμικού για τις περισσότερες από δύο δεκαετίες. Είναι παθιασμένος με το gaming, εργάζεται ως Editor Editor στο Switch Player Magazine και είναι βυθισμένος σε όλες τις πτυχές των διαδικτυακών εκδόσεων και της ανάπτυξης ιστού.
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.