Git Clone Branch - Πώς να κλωνοποιήσετε ένα συγκεκριμένο κλάδο

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

Από τότε που ο Linus Torvalds (ο διάσημος δημιουργός του πυρήνα του λειτουργικού συστήματος Linux) δημιούργησε το Git το 2005 για την ανάπτυξη πυρήνα Linux, έχει γίνει το πιο διαδεδομένο σύγχρονο σύστημα ελέγχου εκδόσεων στον κόσμο.

Σε αυτό το άρθρο, θα σας παρουσιάσω τις ροές εργασίας Git clone και Git Branch και θα σας δείξω πώς μπορείτε να κλωνοποιήσετε έναν συγκεκριμένο κλάδο με βάση τις ανάγκες σας. Ας ξεκινήσουμε! ;

Προαπαιτούμενα

  • Βασικές γνώσεις του τερματικού
  • Δυνατότητα πληκτρολόγησης εντολών στο τερματικό
  • Εγκατεστημένο το Git (θα σας δείξω ακόμα πώς)
  • Ένας λογαριασμός GitHub
  • Ένα χαμόγελο στο πρόσωπό σας.

Γρήγορη εισαγωγή στο Git και το GitHub

Σύμφωνα με την Wikipedia,

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

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

Πώς να εγκαταστήσετε το Git στα Windows

Πραγματοποιήστε λήψη και εγκατάσταση του τελευταίου Git για Windows Installer εδώ.

Πώς να εγκαταστήσετε το Git σε Linux

Ακολουθούν οι εντολές που βασίζονται στη διανομή Linux:

Debian ή Ubuntu

sudo apt-get update sudo apt-get install git

Μαλακό καπέλλο

sudo dnf install git

CentOS

sudo yum install git

Arch Linux

sudo pacman -Sy git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

Πώς να εγκαταστήσετε το Git σε Mac

Πραγματοποιήστε λήψη και εγκατάσταση του πιο πρόσφατου προγράμματος εγκατάστασης Git για Mac εδώ.

Ή μπορείτε να πληκτρολογήσετε αυτήν την εντολή:

brew install git

Τώρα που έχουμε εγκαταστήσει το Git, ας προχωρήσουμε στο σεμινάριο.

Εισαγωγή στο Git Clone

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

Στη συνέχεια, μπορείτε να κλωνοποιήσετε αυτό το αποθετήριο στον τοπικό υπολογιστή σας και να έχετε όλα τα αρχεία και τους κλάδους τοπικά (θα σας εξηγήσω σύντομα περισσότερα για τα καταστήματα)

Για παράδειγμα, μπορείτε να κλωνοποιήσετε το αποθετήριο του FreeCodeCamp με SSH όπως:

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Εισαγωγή στους κλάδους Git

Όταν εργάζεστε σε ένα έργο, πιθανότατα θα έχετε διαφορετικά χαρακτηριστικά. Και πολλοί συνεισφέροντες θα εργαστούν σε αυτό το έργο και τις δυνατότητές του.

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

Το Branching είναι μια βασική ιδέα στο Git που χρησιμοποιείται επίσης στο GitHub για τη διαχείριση ροών εργασιών διαφορετικών εκδόσεων ενός έργου. Ο masterκλάδος είναι πάντα ο προεπιλεγμένος κλάδος σε ένα αποθετήριο που θεωρείται συχνότερα "κώδικας παραγωγής και ανάπτυξης". Νέοι κλάδοι αρέσουν passwordless-authή refactor-signup-uxμπορούν να δημιουργηθούν από τον masterκλάδο.

Πώς να κλωνοποιήσετε τα κλαδιά Git

Ενώ μπορείτε να κλωνοποιήσετε αποθετήρια με την git cloneεντολή, λάβετε υπόψη ότι αυτό κλωνοποιεί τον κλάδο και το τηλεχειριστήριο HEAD. Αυτό είναι συνήθως masterαπό προεπιλογή και περιλαμβάνει όλους τους άλλους κλάδους στο αποθετήριο.

Έτσι, όταν κλωνοποιείτε ένα αποθετήριο, κλωνοποιείτε masterκαι όλους τους άλλους κλάδους. Αυτό σημαίνει ότι θα πρέπει να ελέγξετε μόνοι σας ένα άλλο υποκατάστημα.

Ας υποθέσουμε ότι η εργασία σας σε ένα έργο είναι να εργαστείτε σε μια λειτουργία για να προσθέσετε έλεγχο ταυτότητας χωρίς κωδικό πρόσβασης σε έναν πίνακα ελέγχου χρήστη. Και αυτό το χαρακτηριστικό βρίσκεται στον passwordless-authκλάδο.

Πραγματικά δεν χρειάζεστε το masterυποκατάστημα αφού ο "κλάδος χαρακτηριστικών" θα συγχωνευτεί στο εξής master. Πώς λοιπόν κλωνοποιείτε αυτόν τον passwordless-authκλάδο χωρίς να ανακτήσετε όλους τους άλλους κλάδους με "μια δέσμη αρχείων που δεν χρειάζεστε";

Δημιούργησα αυτό το δείγμα αποθετηρίου για να το εξηγήσω αυτό. Αυτό το αποθετήριο διαθέτει ένα απλό blog που έχει δημιουργηθεί με το Nextjs και έχει τέσσερα εικονικά κλαδιά:

  • κύριος
  • dev
  • σκαλωσιά
  • χωρίς κωδικό πρόσβασης

Στο Nextjs, οποιοδήποτε αρχείο μέσα στο φάκελο pages/apiαντιστοιχίζεται στη /api/*διαδρομή και θα αντιμετωπίζεται ως τελικό σημείο API αντί για page. Στο αποθετήριο μας, έχω δημιουργήσει διαφορετικά εικονικά API σε αυτόν τον κατάλογο για να κάνω κάθε κλάδο διαφορετικό.

Το masterκατάστημα διαθέτει το αρχείο σελίδων / api / hello.js ενώ passwordless-authκατέχει το αρχείο σελίδων / api / auth.js . Κάθε αρχείο επιστρέφει απλώς μια εικονική απόκριση κειμένου. Δείτε masterτην απάντηση API γειά σου εδώ (με ένα ειδικό μήνυμα για εσάς;).

Ας κλωνοποιήσουμε το αποθετήριο:

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

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

git branch -a

Αναρωτιέστε από πού προέρχονται τα υποκαταστήματα / προέλευση / ..

Όταν κλωνοποιείτε ένα αποθετήριο, τραβάτε δεδομένα από ένα αποθετήριο στο Διαδίκτυο ή από έναν εσωτερικό διακομιστή γνωστό ως απομακρυσμένο . Η λέξη προέλευσης είναι ένα ψευδώνυμο που δημιουργήθηκε από το Git σας για να αντικαταστήσει το απομακρυσμένο URL (μπορείτε να αλλάξετε ή να καθορίσετε ένα άλλο ψευδώνυμο εάν θέλετε).

Αυτά τα τηλεχειριστήρια / origin / .. υποκατάστημα σας οδηγούν πίσω στο αποθετήριο προέλευσης που κλωνοποιήσατε από το Διαδίκτυο, ώστε να μπορείτε να εκτελέσετε το pull / push από την προέλευση.

Έτσι, όταν κλωνοποιείτε masterστο μηχάνημά σας, remotes/origin/masterείναι ο αρχικός masterκλάδος στο Διαδίκτυο και masterβρίσκεται στο τοπικό σας μηχάνημα. Έτσι θα τραβήξετε / σπρώξετε από και προς το remotes/origin/master.

Συνοπτικά, το Remote είναι το URL που σας οδηγεί στο αποθετήριο στο Διαδίκτυο, ενώ το Origin είναι ένα ψευδώνυμο για αυτό το απομακρυσμένο URL.

Πώς να κλωνοποιήσετε ένα συγκεκριμένο κλάδο

Τώρα ας κλωνοποιήσουμε έναν συγκεκριμένο κλάδο από το αποθετήριο επίδειξης. Υπάρχουν δύο τρόποι κλωνοποίησης ενός συγκεκριμένου κλάδου. Μπορείς είτε:

  • Κλωνοποιήστε το αποθετήριο, ανακτήστε όλα τα κλαδιά και πραγματοποιήστε άμεση ολοκλήρωση αγοράς σε ένα συγκεκριμένο κλάδο.
  • Κλωνοποιήστε το αποθετήριο και πάρτε μόνο έναν κλάδο.

Επιλογή Ένα

git clone --branch  

ή

git clone -b  

Με αυτό, παίρνετε όλους τους κλάδους στο αποθετήριο, το ταμείο σε αυτό που καθορίσατε και ο συγκεκριμένος κλάδος γίνεται ο διαμορφωμένος τοπικός κλάδος για git pushκαι git pull. Ωστόσο, έχετε ακόμα ανακτήσει όλα τα αρχεία από κάθε κλάδο. Αυτό μπορεί να μην είναι αυτό που θέλετε σωστά; ;

Ας το δοκιμάσουμε:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Αυτό διαμορφώνεται αυτόματα passwordless-authως τοπικός κλάδος αλλά εξακολουθεί να παρακολουθεί άλλους κλάδους.

Επιλογή δύο

git clone --branch  --single-branch 

ή

git clone -b  --single-branch 

Αυτό εκτελεί την ίδια ενέργεια με την επιλογή 1, εκτός του ότι η --single-branchεπιλογή εισήχθη στην έκδοση Git 1.7.10 και μεταγενέστερη. Σας επιτρέπει να λαμβάνετε μόνο αρχεία από τον καθορισμένο κλάδο χωρίς να λαμβάνετε άλλους κλάδους.

Ας το δοκιμάσουμε:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Αυτό διαμορφώνεται αυτόματα passwordless-authως τοπικός κλάδος και παρακολουθεί μόνο αυτόν τον κλάδο.

Εάν εκτελέσετε cd pages/apiθα βρείτε το auth.jsαρχείο στον passwordless-authκλάδο όπως αναμενόταν από την προηγούμενη εγκατάσταση.

συμπέρασμα

Μπορεί να εξαντλείται το Διαδίκτυο ή ο αποθηκευτικός χώρος, αλλά πρέπει να εργαστείτε σε μια εργασία σε έναν συγκεκριμένο κλάδο. Ή ίσως θέλετε να κλωνοποιήσετε έναν συγκεκριμένο κλάδο με περιορισμένα αρχεία για διάφορους λόγους. Ευτυχώς, το Git σας παρέχει την ευελιξία να το κάνετε αυτό. Λυγίστε τους μυς σας και δοκιμάστε το, υπάρχουν πολλά περισσότερα "Git" για να μάθετε.

Ένα κάθε φορά, ναι; ✌;