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

Βασικά Takeaways

  • Η διαγραφή διακλαδώσεων είναι ένα σημαντικό μέρος μιας τυπικής ροής εργασίας Git.
  • Μπορείτε να διαγράψετε έναν τοπικό κλάδο χρησιμοποιώντας την εντολή “git branch -d [branchname]”, αλλά να είστε προσεκτικοί με τις μη συγχωνευμένες αλλαγές.
  • Διαφορετικά εργαλεία όπως το GitHub Desktop, το GitKraken, το Tower και το Bitbucket έχουν τις δικές τους μεθόδους για τη διαγραφή κλάδων, επομένως εξοικειωθείτε με τη συγκεκριμένη διαδικασία για κάθε εργαλείο.

Τα κλαδιά του Git είναι τόσο ελαφριά που είναι εύκολο να τα δημιουργήσετε όποτε χρειαστεί. Αλλά είναι επίσης εύκολο να καταλήξετε με υπολείμματα κλαδιών που δεν χρειάζεστε πλέον. Τι σημαίνει λοιπόν η διαγραφή ενός υποκαταστήματος;

Γιατί να διαγράψετε ένα υποκατάστημα;

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

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

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

  Πώς να εξαιρεθείτε από το Whitepages.com

Ένα αποθετήριο δειγμάτων με υποκαταστήματα

Τα παρακάτω παραδείγματα αναφέρονται σε ένα αποθετήριο δειγμάτων με την ακόλουθη δομή:

Σημειώστε ότι το repo έχει δύο κλάδους: main και dev. Κάθε ένα από αυτά τα τοπικά υποκαταστήματα είναι ένας κλάδος παρακολούθησης, με έναν αντίστοιχο κλάδο ανάντη σε έναν απομακρυσμένο διακομιστή (προέλευση).

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

Διαγραφή υποκαταστήματος χρησιμοποιώντας τη γραμμή εντολών

Η βασική σύνταξη εντολών για τη διαγραφή ενός κλάδου είναι:

 git branch (-d | -D) [-r] <branchname>... 

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

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

 git branch -d dev 

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

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

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

Όπως λέει το μήνυμα σφάλματος, μπορείτε να επιβάλετε τη διαγραφή με τη σημαία -D.

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

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

Η διαγραφή ενός απομακρυσμένου κλάδου είναι αρκετά διαφορετική. Θα χρησιμοποιήσετε την εντολή push git μαζί με τη σημαία -d για διαγραφή. Μετά από αυτό, δώστε το όνομα του τηλεχειριστηρίου (συχνά προέλευσης) και το όνομα του κλάδου:

  Πώς μπορώ να καταργήσω την εγγραφή μου από το Quora Digest

Διαγραφή τοπικών και απομακρυσμένων υποκαταστημάτων με την επιφάνεια εργασίας GitHub

Σε αντίθεση με το πρόγραμμα git της γραμμής εντολών, Η εφαρμογή επιφάνειας εργασίας του GitHub θα σας επιτρέψει μόνο να διαγράψετε τον ενεργό κλάδο. Μπορείτε να πραγματοποιήσετε αυτήν την ενέργεια μέσω του μενού Branch, επιλέγοντας την επιλογή Delete και επιβεβαιώνοντάς την:

Το GitHub Desktop δεν θα σας επιτρέψει να διαγράψετε τον προεπιλεγμένο κλάδο—π.χ. τον κύριο—παρόλο που το ίδιο το git το υποστηρίζει. Εάν ο προεπιλεγμένος κλάδος είναι αυτός που είναι ενεργός αυτήν τη στιγμή, η εφαρμογή απενεργοποιεί την ενέργεια μενού.

Εάν ο κλάδος αντιπροσωπεύει επίσης έναν απομακρυσμένο κλάδο, το GitHub Desktop δίνει την επιλογή να το διαγράψετε και από το τηλεχειριστήριο:

Διαγραφή υποκαταστημάτων με χρήση του GitKraken

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

Τοποθετήστε το δείκτη του ποντικιού πάνω από το κατάλληλο όνομα κλάδου και κάντε κλικ στο μενού Ενέργειες κλάδου που μοιάζει με τρεις κάθετες κουκκίδες. Από το μενού, επιλέξτε Διαγραφή <όνομα υποκαταστήματος>:

Θα δείτε ένα μήνυμα επιβεβαίωσης που σας ενημερώνει ότι πρόκειται για καταστροφική λειτουργία. Μπορείτε να επιβεβαιώσετε ότι θέλετε να συνεχίσετε με το κουμπί Διαγραφή:

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

Διαγραφή τοπικών και απομακρυσμένων υποκαταστημάτων με χρήση του Tower

Διαγραφή υποκαταστήματος με Πύργος μοιάζει πολύ με τη διαγραφή ενός κλάδου με το GitKraken. Η εφαρμογή εμφανίζει τοπικούς και απομακρυσμένους κλάδους σε ένα πλαίσιο στην αριστερή πλευρά. Κάντε δεξί κλικ σε οποιοδήποτε κλάδο και επιλέξτε την επιλογή Διαγραφή από το μενού περιβάλλοντος:

  13 καλύτερες πλατφόρμες για Comic Nerds για να διαβάζουν Comics Online

Μια βασική διαφορά είναι ότι μπορείτε να διαγράψετε ένα απομακρυσμένο υποκατάστημα, μαζί με το τοπικό υποκατάστημά του, κατά την επιβεβαίωση:

Διαγραφή υποκαταστήματος στο GitHub

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

Όπως και με την εφαρμογή GitHub Desktop, ο ιστότοπος του GitHub δεν θα σας επιτρέψει να διαγράψετε τον προεπιλεγμένο κλάδο. Εάν προσπαθήσετε, θα δείτε ένα μήνυμα σφάλματος:

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

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

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

Διαγραφή τοπικών και απομακρυσμένων υποκαταστημάτων στο Bitbucket

Το Bitbucket, όπως και το GitHub, δεν θα σας επιτρέψει να διαγράψετε τον προεπιλεγμένο κλάδο. Το Bitbucket το ονομάζει Κύριο κλάδο στις ρυθμίσεις Αποθετηρίου. Μπορείτε να διαγράψετε οποιοδήποτε άλλο κλάδο που αναφέρεται στην καρτέλα Branches, μέσω του αντίστοιχου μενού Ενέργειες:

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

Η διαγραφή υποκαταστημάτων είναι μέρος μιας τυπικής ροής εργασίας Git

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

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