Σε όλο τον κόσμο, το Git είναι το πιο χρησιμοποιούμενο σύστημα ελέγχου έκδοσης (VCS) για την παρακολούθηση και τον έλεγχο έργων. Προσφέρει επίσης ένα διάσπαρτο και συνεργατικό περιβάλλον εργασίας, ενθαρρύνοντας τη συνεργασία.
Η διακλάδωση είναι ένα από τα πιο βασικά χαρακτηριστικά του Git, καθώς σας επιτρέπει να δημιουργήσετε ένα ξεχωριστό κανάλι για ένα συγκεκριμένο σύνολο αλλαγών, όπως μια ενημέρωση κώδικα bug, ανάπτυξη νέων λειτουργιών ή πειραματισμό, χωρίς να επηρεάζετε τον κύριο κλάδο.
Σε σύγκριση με άλλες λειτουργίες Git, η διακλάδωση είναι μια αρκετά απλή μέθοδος. Σας επιτρέπει να αποκλίνετε από την αρχική βάση κώδικα.
Το Branching σάς επιτρέπει να συνεργάζεστε με άλλους προγραμματιστές πιο γρήγορα και σας παρέχει μεγάλη ελευθερία στη ροή εργασίας σας. Σας επιτρέπει επίσης να εργάζεστε σε μια νέα δυνατότητα χωρίς να επηρεάζετε την υπόλοιπη βάση κώδικα.
Ο μηχανισμός διακλάδωσης του Git επιτρέπει την ίδρυση νέων υποκαταστημάτων μέσα σε ένα έργο.
Αυτές οι πρόσθετες διακλαδώσεις μπορούν στη συνέχεια να χρησιμοποιηθούν για τη δοκιμή αλλαγών κώδικα χωρίς παρεμβολές στον κύριο κώδικα του έργου. Εάν οι προσαρμογές είναι επιτυχείς, ο κλάδος μπορεί να συγχωνευθεί ξανά στον κύριο κλάδο.
Ωστόσο, υπάρχουν φορές που χρειάζεται να διαγράψετε ένα υποκατάστημα Git τοπικά, αλλά όχι εξ αποστάσεως. Διαβάστε παρακάτω για να μάθετε πώς να το κάνετε.
Τι είναι το Git Branch;
Το Git μπορεί να παρακολουθεί πολλές γραμμές εργασίας χάρη στη διακλάδωση. Αυτό σας δίνει τη δυνατότητα να εργάζεστε σε πολλές εκδόσεις του έργου σας ταυτόχρονα.
Πολλά έργα θα διατηρήσουν έναν σταθερό κύριο κλάδο ενώ προσθέτουν νέες δυνατότητες ή διορθώνουν σφάλματα σε έναν κλάδο ανάπτυξης ή δοκιμής.
Όταν οι Project Managers είναι απολύτως βέβαιοι ότι οι αλλαγές που έγιναν στον κλάδο Dev πληρούν τα κριτήρια, μπορούν να συγχωνεύσουν αυτές τις τροποποιήσεις στον κύριο κλάδο. Για ορισμένα μεγαλύτερα έργα, αυτός ο κύκλος συχνά επαναλαμβάνεται επ' αόριστον.
Η συνεργασία με τους κλάδους ανάπτυξης του Git είναι μια θαυμάσια προσέγγιση για την εργασία με το πρόγραμμά μας, ενώ παρακολουθούμε τις εκδόσεις του. Ένας κλάδος ανάπτυξης, γενικά, είναι μια διάσπαση στην κατάσταση του κώδικα που δημιουργεί μια νέα διαδρομή για την πρόοδό του.
Μπορεί να τρέξει παράλληλα με άλλους κλάδους Git, μπορείτε να δημιουργήσετε. Είναι δυνατό να προσθέσουμε νέες δυνατότητες στον κώδικά μας με οργανωμένο και ακριβή τρόπο.
Γιατί και πότε χρειάζεται διαγραφή;
Είναι τυπική πρακτική συντήρησης να διαγράφετε κλάδους Git όταν δεν χρησιμοποιούνται πλέον, αν και αυτό δεν είναι πάντα καθολικό ή κατανοητό.
Γιατί πρέπει να αφαιρέσετε παλιούς κλάδους Git από το αποθετήριό σας; Υπάρχουν δύο βασικοί λόγοι για αυτό:
- Είναι περιττοί. Τα περισσότερα υποκαταστήματα, ιδιαίτερα αυτά που συνδέονται με ένα αίτημα έλξης που έχει τελικά εγκριθεί, δεν έχουν καμία λειτουργία.
- Αποτελούν πηγή σύγχυσης. Δεν προσθέτουν κανένα σημαντικό τεχνολογικό κόστος, αλλά κάνουν την εργασία με λίστες υποκαταστημάτων στο αποθετήριο πιο δύσκολη για τους ανθρώπους.
Τα υποκαταστήματα μπορούν να διαγραφούν με ασφάλεια χωρίς φόβο να χαθούν τυχόν τροποποιήσεις.
Εξετάστε το ακόλουθο σενάριο: μια ενημερωμένη έκδοση κώδικα κλάδου-1 πρόκειται να συγχωνευθεί με τον κύριο κλάδο μέσω ενός αιτήματος έλξης. Πριν από τη συγχώνευση, το master και το patch-1, το καθένα οδηγεί σε διαφορετικές αναθεωρήσεις στο ιστορικό δέσμευσης git.
Μετά τη συγχώνευση (εάν προστεθεί νέα δέσμευση συγχώνευσης), η κύρια και η ενημερωμένη έκδοση κώδικα-1 συνδέονται με τη νέα δέσμευση συγχώνευσης. Σε αυτό το σημείο, το αίτημα έλξης έχει ολοκληρωθεί και όλες οι μελλοντικές ωθήσεις θα πρέπει να υποβάλλονται στο master και όχι στο patch-1.
Local vs Remote Branch στο Git
Remote Branch – Βρίσκεται σε ξεχωριστό σύστημα, γενικά σε έναν διακομιστή στον οποίο μπορούν να έχουν πρόσβαση οι προγραμματιστές. Όταν διαγράφεται ένας απομακρυσμένος κλάδος, διαγράφεται για όλους τους χρήστες.
Τοπικό υποκατάστημα – Στο τοπικό σύστημα, αποθηκεύεται ένα τοπικό υποκατάστημα. Η διαγραφή ενός τοπικού υποκαταστήματος δεν έχει καμία επίδραση σε ένα απομακρυσμένο υποκατάστημα.
Πώς να διαγράψετε υποκαταστήματα τοπικά;
Δεν θα σας επιτρέψει να αφαιρέσετε το υποκατάστημα στο οποίο εργάζεστε τώρα, επομένως βεβαιωθείτε ότι έχετε αγοράσει ένα υποκατάστημα που ΔΕΝ διαγράφετε. Ας ξεκινήσουμε με τον τρόπο κατάργησης ενός τοπικού κλάδου.
- Για να ξεκινήσετε, εκτελέστε την εντολή (git branch -a) για να δείτε όλους τους κλάδους (τοπικούς και απομακρυσμένους).
- Στη συνέχεια, χρησιμοποιώντας την εντολή (git branch -d), ακολουθούμενη από το όνομα του κλάδου που θέλετε να αφαιρέσετε, μπορείτε να το διαγράψετε.
Εάν επιχειρήσετε να αφαιρέσετε έναν κλάδο με μη συγχωνευμένες τροποποιήσεις, θα εμφανιστεί το ακόλουθο μήνυμα σφάλματος:
Όπως υποδεικνύει το παραπάνω μήνυμα, για να εξαναγκάσετε τη διαγραφή ενός κλάδου, χρησιμοποιήστε την επιλογή -D, η οποία είναι μια συντόμευση για το —delete —force.
Λάβετε υπόψη ότι η διαγραφή ενός μη συγχωνευμένου κλάδου θα έχει ως αποτέλεσμα την απώλεια όλων των τροποποιήσεων σε αυτόν τον κλάδο.
Εάν επιχειρήσετε να διαγράψετε τον τρέχοντα κλάδο, θα δείτε το ακόλουθο μήνυμα:
Δεν μπορείτε να αφαιρέσετε το υποκατάστημα στο οποίο βρίσκεστε αυτήν τη στιγμή. Μεταβείτε πρώτα σε άλλο κλάδο και, στη συνέχεια, αφαιρέστε το όνομα του κλάδου:
Μειονέκτημα της διαγραφής ενός κλάδου
Ένα πιθανό μειονέκτημα για τη διαγραφή υποκαταστημάτων είναι ότι τυχόν συνδέσεις με την τοποθεσία του υποκαταστήματος θα σπάσουν (στο GitHub, κ.λπ.).
Δεν έχω σχεδόν ποτέ μόνιμους συνδέσμους με μη κύρια υποκαταστήματα και αν ήθελα να συνδεθώ σε οποιαδήποτε εργασία σε ένα συγκεκριμένο κλάδο, πιθανότατα θα το έκανα αφού είχε μετατραπεί σε αίτημα έλξης (στην περίπτωση αυτή θα συνδεόμουν με το Τραβήξτε-Αίτημα).
Τελικές λέξεις
Το να γνωρίζετε πώς να χρησιμοποιείτε κλάδους ανάπτυξης καθίσταται κρίσιμο για τη δημιουργία της εφαρμογής σας με συστηματικό τρόπο. Φροντίστε να δομήσετε τον κώδικα σας σε διάφορους κλάδους.
Εάν, σε οποιοδήποτε σημείο, δεν είστε σίγουροι για μια περίπλοκη επέμβαση, είναι πάντα καλή ιδέα να διαβάσετε Επίσημη τεκμηρίωση του Git σε κλαδιά.
Αφήστε μια απάντηση