Πραγματοποιεί κλώνοι κλώνου Git
Κλάδος κλώνου Git – Πώς να κλωνοποιήσετε ένα συγκεκριμένο κλάδο
Περίληψη:
Σε αυτό το άρθρο, θα συζητήσω πώς να κλωνοποιήσω ένα συγκεκριμένο κλάδο στο Git. Θα παράσχω βήμα προς βήμα οδηγίες και εξηγήσεις σχετικά με τον τρόπο ολοκλήρωσης αυτής της εργασίας. Επιπλέον, θα αντιμετωπίσω μερικές κοινές ερωτήσεις και θα δώσω λεπτομερείς απαντήσεις με βάση την προσωπική μου εμπειρία.
Βασικά σημεία:
1. Κατεβάστε και εγκαταστήστε το τελευταίο GIT για το Mac Installer: Πριν μπορέσετε να κλωνοποιήσετε ένα συγκεκριμένο κλάδο, πρέπει να έχετε εγκατεστημένο το git στο Mac σας. Επισκεφθείτε τον επίσημο ιστότοπο GIT και κατεβάστε το τελευταίο πρόγραμμα εγκατάστασης για Mac.
2. Χρησιμοποιήστε την εντολή clone git: Για να κλωνοποιήσετε έναν συγκεκριμένο κλάδο, μπορείτε να χρησιμοποιήσετε την εντολή clone git ακολουθούμενη από τη διεύθυνση URL του αποθετηρίου και το όνομα του κλάδου.
3. Ελέγξτε την έκδοση GIT: Είναι σημαντικό να διασφαλίσετε ότι έχετε εγκαταστήσει μια συμβατή έκδοση του Git. Μπορείτε να ελέγξετε την έκδοση GIT εκτελώντας μια απλή εντολή στο τερματικό.
Ερώτηση 1: Ο κλώνος κλώνου Git Git όλα τα κλάδο?
Απάντηση: Όχι, η εντολή git clone δεν κλωνοποιεί όλους τους κλάδους από προεπιλογή. Είναι μόνο κλώνοι το υποκατάστημα που ελέγχεται επί του παρόντος ή το υποκατάστημα που καθορίζεται στην εντολή.
Ερώτηση 2: Πώς μπορώ να κλωνοποιήσω ένα συγκεκριμένο κλάδο χρησιμοποιώντας κλώνο Git?
Απάντηση: Για να κλωνοποιήσετε έναν συγκεκριμένο κλάδο χρησιμοποιώντας κλώνο Git, μπορείτε να προσθέσετε το όνομα του κλάδου στο τέλος της εντολής όπως αυτή: Git Clone
Ερώτηση 3: Μπορώ να κλωνοποιήσω πολλαπλούς κλάδους ταυτόχρονα χρησιμοποιώντας το Git Clone?
Απάντηση: Όχι, ο Git Clone σας επιτρέπει να κλωνοποιείτε ένα υποκατάστημα κάθε φορά. Εάν θέλετε να κλωνοποιήσετε πολλαπλά κλαδιά, θα χρειαστεί να εκτελέσετε την εντολή κλώνου Git ξεχωριστά για κάθε κλάδο.
Ερώτηση 4: Πώς μπορώ να αλλάξω σε διαφορετικό κλάδο μετά την κλωνοποίηση ενός συγκεκριμένου κλάδου?
Απάντηση: Μετά την κλωνοποίηση ενός συγκεκριμένου κλάδου, μπορείτε να χρησιμοποιήσετε την εντολή Git Checkout για να μεταβείτε σε διαφορετικό κλάδο. Απλά εκτελέστε το Git Checkout
Ερώτηση 5: Μπορώ να κλωνοποιήσω ένα απομακρυσμένο κλάδο που δεν υπάρχει τοπικά?
Απάντηση: Ναι, μπορείτε να κλωνοποιήσετε ένα απομακρυσμένο κλάδο που δεν υπάρχει τοπικά. Όταν κλωνοποιείτε το χώρο αποθήκευσης, ο Git θα φέρει όλα τα κλαδιά από το απομακρυσμένο αποθετήριο, συμπεριλαμβανομένου αυτού που θέλετε να κλωνοποιήσετε.
Ερώτηση 6: Τι γίνεται αν ο κλάδος που θέλω να κλωνοποιήσει έχει διαγραφεί?
Απάντηση: Εάν το υποκατάστημα που θέλετε να κλωνοποιήσετε έχει διαγραφεί, δεν θα μπορείτε να το κλωνοποιήσετε. Βεβαιωθείτε ότι ο κλάδος εξακολουθεί να υπάρχει στο απομακρυσμένο αποθετήριο πριν επιχειρήσετε να το κλωνοποιήσετε.
Ερώτηση 7: Μπορώ να καθορίσω μια συγκεκριμένη δέσμευση αντί για υποκατάστημα κατά την κλωνοποίηση?
Απάντηση: Ναι, μπορείτε να καθορίσετε μια συγκεκριμένη δέσμευση αντί για κλάδο όταν κλωνοποίηση. Πρέπει να παρέχετε το hash commit αντί για το όνομα του κλάδου στην εντολή Git Clone.
Ερώτηση 8: Υπάρχουν περιορισμοί στην κλωνοποίηση συγκεκριμένων κλάδων?
Απάντηση: Δεν υπάρχουν συγκεκριμένοι περιορισμοί στην κλωνοποίηση συγκεκριμένων κλάδων. Ωστόσο, βεβαιωθείτε ότι έχετε τα απαραίτητα δικαιώματα και πρόσβαση στο υποκατάστημα που θέλετε να κλωνοποιήσετε.
Ερώτηση 9: Είναι δυνατόν να κλωνοποιηθεί ένας κλάδος από διαφορετικό απομακρυσμένο αποθετήριο?
Απάντηση: Ναι, είναι δυνατόν να κλωνοποιήσετε ένα υποκατάστημα από διαφορετικό απομακρυσμένο αποθετήριο. Απλά πρέπει να παρέχετε τη διεύθυνση URL αποθετηρίου και το όνομα του κλάδου στην εντολή Git Clone.
Ερώτηση 10: Πώς μπορώ να ενημερώσω ένα κλωνοποιημένο κλάδο με τις τελευταίες αλλαγές από το απομακρυσμένο αποθετήριο?
Απάντηση: Για να ενημερώσετε ένα κλωνοποιημένο υποκατάστημα με τις τελευταίες αλλαγές από το απομακρυσμένο αποθετήριο, μπορείτε να χρησιμοποιήσετε την εντολή pull git pull. Απλά μεταβείτε στον κατάλογο κλωνοποιημένων αποθετηρίων και εκτελέστε το Git Pull.
Κλάδος κλώνου Git – Πώς να κλωνοποιήσετε ένα συγκεκριμένο κλάδο
Κατεβάστε και εγκαταστήστε το τελευταίο git για το Mac Installer εδώ.
Πραγματοποιεί κλώνοι κλώνου Git
Αλλαγές στο κλώνος με git εγχειρίδιο
- 2.38.1 → 2.40.1 Χωρίς αλλαγές
- 2.38.0







10/02/22 - 2.36.1 → 2.37.7 Χωρίς αλλαγές
- 2.36.0







04/18/22 - 2.35.1 → 2.35.8 Χωρίς αλλαγές
- 2.35.0







01/24/22 - 2.32.1 → 2.34.8 Χωρίς αλλαγές
- 2.32.0







06/06/21 - 2.30.2 → 2.31.8 Χωρίς αλλαγές
- 2.30.1







02/08/21 - 2.30.0







12/27/20 - 2.29.1 → 2.29.3 Χωρίς αλλαγές
- 2.29.0







10/19/20 - 2.28.1 Χωρίς αλλαγές
- 2.28.0







07/27/20 - 2.27.1 Χωρίς αλλαγές
- 2.27.0







06/01/20 - 2.25.1 → 2.26.3 Χωρίς αλλαγές
- 2.25.0







01/13/20
Ελέγξτε την έκδοση του GIT εκτελείται
ΟΝΟΜΑ
Git -clone – κλώνος Ένα αποθετήριο σε έναν νέο κατάλογο
ΣΥΝΟΨΗ
κλώνος [--template =] [-l] [-s] [-no-hardlinks] [-q] [-n] [--bare] [-mirror] [-o] [-b] [-u] [-Reference] [--dissociate] [-Separate-git-dir] [no-] ρηχά-υποβρύχια] [-[no-] remote-submodules] [-Jobs] [-sparse] [-[no-] derjall-shallow] [--filter = [
ΠΕΡΙΓΡΑΦΗ
Κλώνοι Ένα αποθετήριο σε έναν νεοεισερχόμενο κατάλογο, δημιουργεί κλάδους απομακρυσμένης παρακολούθησης για κάθε κλάδο στο κλωνοποιημένο αποθετήριο (ορατό με τη χρήση κλάδου Git) και δημιουργεί και ελέγχει έναν αρχικό κλάδο που είναι διχαλωμένο από το κλωνοποιημένο αποθετήριο’S επί του παρόντος ενεργό υποκατάστημα.
Μετά τον κλώνο, ένα απλό git fetch χωρίς επιχειρήματα θα ενημερώσει όλα τα κλαδιά απομακρυσμένης παρακολούθησης και ένα τράβηγμα git χωρίς επιχειρήματα θα συγχωνεύσει επιπλέον τον απομακρυσμένο κύριο υποκατάστημα στον τρέχοντα κύριο υποκατάστημα, αν υπάρχει (αυτό είναι αναληθές όταν δίνεται το “-single-branch”.
Αυτή η προεπιλεγμένη διαμόρφωση επιτυγχάνεται με τη δημιουργία αναφορών στις απομακρυσμένες κεφαλές κλάδου κάτω.προέλευση.URL και απομακρυσμένο.προέλευση.Λήψη μεταβλητών διαμόρφωσης.
Επιλογές
Όταν το αποθετήριο για κλώνο από είναι σε ένα τοπικό μηχάνημα, αυτή η σημαία παρακάμπτει τον κανονικό μηχανισμό μεταφοράς “git uartering” και κλώνους το αποθετήριο κάνοντας ένα αντίγραφο του κεφαλιού και τα πάντα κάτω από αντικείμενα και καταλόγους refs. Τα αρχεία κάτω .Git/ Objects/ Directory είναι σκληρά για να εξοικονομήσετε χώρο όταν είναι δυνατόν.
Εάν το αποθετήριο έχει οριστεί ως τοπική διαδρομή (Ε.σολ., /path/to/repo), αυτή είναι η προεπιλογή, και-το-local είναι ουσιαστικά no-op. Εάν το αποθετήριο έχει οριστεί ως διεύθυνση URL, τότε αυτή η σημαία αγνοείται (και ποτέ δεν χρησιμοποιούμε τις τοπικές βελτιστοποιήσεις). Ο καθορισμός-το μη-τοπικό θα παρακάμψει την προεπιλογή όταν δίδεται/διαδρομή/προς/repo, χρησιμοποιώντας την κανονική μεταφορά GIT αντ ‘αυτού.
ΣΗΜΕΙΩΣΗ: Αυτή η λειτουργία μπορεί να αγωνιστεί με ταυτόχρονη τροποποίηση του αποθετηρίου προέλευσης, παρόμοια με την εκτέλεση CP -R SRC DST ενώ τροποποιεί το SRC .
–μη-hardlinks
Αναγκάστε τη διαδικασία κλωνοποίησης από ένα αποθετήριο σε ένα τοπικό σύστημα αρχείων για να αντιγράψετε τα αρχεία κάτω από το .Κατάλογος GIT/Objects αντί να χρησιμοποιείτε σκληρές συνδέσεις. Αυτό μπορεί να είναι επιθυμητό εάν προσπαθείτε να δημιουργήσετε αντίγραφο ασφαλείας του αποθετηρίου σας.
Όταν το αποθετήριο στον κλώνο βρίσκεται στο τοπικό μηχάνημα, αντί να χρησιμοποιεί σκληρούς συνδέσμους, αυτόματα εγκατάσταση .GIT/Objects/Info/ALTERATES για να μοιραστείτε τα αντικείμενα με το αποθετήριο προέλευσης. Το προκύπτον αποθετήριο ξεκινά χωρίς κανένα αντικείμενο της δικής του.
ΣΗΜΕΙΩΣΗ: Αυτή είναι μια πιθανώς επικίνδυνη λειτουργία. κάνω δεν Χρησιμοποιήστε το αν δεν καταλαβαίνετε τι κάνει. Εάν κλωνοποιήσετε το αποθετήριο σας χρησιμοποιώντας αυτήν την επιλογή και, στη συνέχεια, διαγράψτε τα κλαδιά (ή χρησιμοποιήστε οποιαδήποτε άλλη εντολή git που κάνει οποιαδήποτε υπάρχουσα δέσμευση μη αναφερόμενη) στο αποθετήριο πηγής, ορισμένα αντικείμενα ενδέχεται να γίνουν μη αναφερόμενα (ή κρέμονται). Αυτά τα αντικείμενα μπορούν να αφαιρεθούν με κανονικές εργασίες GIT (όπως η GIT Commit) που καλούν αυτόματα το Git Saintenance Run -Auto . (Δείτε τη συντήρηση Git [1].) Εάν τα αντικείμενα αυτά αφαιρεθούν και αναφέρονται από το κλωνοποιημένο αποθετήριο, τότε το κλωνοποιημένο αποθετήριο θα καταστεί διεφθαρμένο.
Σημειώστε ότι η εκτέλεση του git repack χωρίς την τοπική επιλογή σε ένα αποθετήριο κλωνοποιημένο με -το SHARED θα αντιγράψει αντικείμενα από το αποθετήριο προέλευσης σε ένα πακέτο στο κλωνοποιημένο αποθετήριο, αφαιρώντας την εξοικονόμηση χώρου δίσκου του κλώνου – . Είναι ασφαλές, ωστόσο, να εκτελέσετε το GIT GC, το οποίο χρησιμοποιεί την επιλογή -τοπική επιλογή από προεπιλογή.
Εάν θέλετε να σπάσετε την εξάρτηση ενός αποθετηρίου κλωνοποιημένου με -που έχει ανασταλεί στο αποθετήριο πηγής του, μπορείτε απλά να εκτελέσετε το git repack -a για να αντιγράψετε όλα τα αντικείμενα από το αποθετήριο πηγής σε ένα πακέτο στο κλωνοποιημένο αποθετήριο.
–αναφορά [-if-able]
Εάν το αποθετήριο αναφοράς βρίσκεται στο τοπικό μηχάνημα, αυτόματα ρύθμιση .GIT/Objects/Info/ALTERATES για να αποκτήσετε αντικείμενα από το αποθετήριο αναφοράς. Η χρήση ενός ήδη υπάρχοντος αποθετηρίου ως εναλλακτικού θα απαιτήσει λιγότερα αντικείμενα που πρέπει να αντιγραφούν από το αποθετήριο που κλωνοποιείται, μειώνοντας το δίκτυο και τα τοπικά έξοδα αποθήκευσης. Όταν χρησιμοποιείτε το-Reference-If-Cable, ένας μη υπάρχων κατάλογος παραλείπεται με προειδοποίηση αντί να σταματήσει τον κλώνο.
ΣΗΜΕΙΩΣΗ: Δείτε τη σημείωση για την επιλογή -Shared, καθώς και την επιλογή – -dissociate.
–διαχωρίζω
Δανειστείτε τα αντικείμενα από αποθετήρια αναφοράς που καθορίζονται με τις επιλογές αναφοράς μόνο για να μειώσετε τη μεταφορά δικτύου και να σταματήσετε να δανειστείτε από αυτά μετά από έναν κλώνο που γίνεται με τα απαραίτητα τοπικά αντίγραφα δανεισμένων αντικειμένων. Αυτή η επιλογή μπορεί επίσης να χρησιμοποιηθεί κατά την κλωνοποίηση τοπικά από ένα αποθετήριο που ήδη δανείζεται αντικείμενα από άλλο αποθετήριο – το νέο αποθετήριο θα δανειστεί αντικείμενα από το ίδιο αποθετήριο και αυτή η επιλογή μπορεί να χρησιμοποιηθεί για να σταματήσει το δανεισμό.
Λειτουργεί ήσυχα. Η πρόοδος δεν αναφέρεται στην τυπική ροή σφαλμάτων.
Εκτελέστε με ρολί. Δεν επηρεάζει την αναφορά της κατάστασης προόδου στην τυπική ροή σφαλμάτων.
Η κατάσταση προόδου αναφέρεται στην τυπική ροή σφαλμάτων από προεπιλογή όταν είναι συνδεδεμένη σε ένα τερματικό, εκτός εάν έχει καθοριστεί -quiet. Αυτή η σημαία αναγκάζει την κατάσταση προόδου ακόμη και αν η τυπική ροή σφάλματος δεν κατευθύνεται σε ένα τερματικό.
Μεταφέρετε τη δεδομένη συμβολοσειρά στο διακομιστή κατά την επικοινωνία χρησιμοποιώντας το πρωτόκολλο έκδοση 2. Η δεδομένη συμβολοσειρά δεν πρέπει να περιέχει χαρακτήρα NUL ή LF. Ο διακομιστής’Ο χειρισμός των επιλογών διακομιστή, συμπεριλαμβανομένων των άγνωστων, είναι ειδικός για το διακομιστή. Όταν δίνονται πολλαπλά-server-option =.
Κανένα checkout του κεφαλιού δεν εκτελείται μετά την ολοκλήρωση του κλώνου.
Αποτυχία εάν το αποθετήριο προέλευσης είναι ένα ρηχό αποθετήριο. ο κλώνος.απόρριψη Η μεταβλητή διαμόρφωσης μπορεί να χρησιμοποιηθεί για τον καθορισμό της προεπιλογής.
Κάνει μια γυμνός Αποθετήριο Git. Δηλαδή, αντί να δημιουργεί και να τοποθετεί τα διοικητικά αρχεία στο /.git, κάντε το ίδιο το $ git_dir . Αυτό προφανώς υπονοεί το-χωρίς έλεγχο επειδή δεν υπάρχει πουθενά για να ελέγξετε το δέντρο εργασίας. Επίσης, οι κεφαλές του κλάδου στο τηλεχειριστήριο αντιγράφονται απευθείας σε αντίστοιχες τοπικές κεφαλές κλάδου, χωρίς να τα χαρτογραφούν σε αναφορές/τηλεχειριστήρια/προέλευση/ . Όταν χρησιμοποιείται αυτή η επιλογή, ούτε δημιουργούνται υποκαταστήματα απομακρυσμένης παρακολούθησης ούτε σχετικές μεταβλητές διαμόρφωσης.
Χρησιμοποιήστε έναν αραιά έλεγχο, με μόνο αρχεία στον κατάλογο Toplevel αρχικά. Η εντολή git-sparse-checkout [1] μπορεί να χρησιμοποιηθεί για την ανάπτυξη του καταλόγου εργασίας ανάλογα με τις ανάγκες.
Χρησιμοποιήστε τη λειτουργία μερικής κλώνου και ζητήστε ο διακομιστής να στέλνει ένα υποσύνολο προσβάσιμων αντικειμένων σύμφωνα με ένα δεδομένο φίλτρο αντικειμένου. Όταν χρησιμοποιείτε -φίλτρο, το παρεχόμενο χρησιμοποιείται για το φίλτρο μερικής κλώνου. Για παράδειγμα, -φίλτρο = blob: Κανένας δεν θα φιλτράρει όλα τα blobs (περιεχόμενα αρχείων) μέχρι να χρειαστεί από το git. Επίσης, -Φίλτρο = BLOB: LIMIT = θα φιλτράρετε τουλάχιστον όλα τα blobs του μεγέθους . Για περισσότερες λεπτομέρειες σχετικά με τις προδιαγραφές φίλτρου, ανατρέξτε στην επιλογή-φίλτρου στο Git-Rev-List [1].
Εφαρμόστε επίσης το μερικό φίλτρο κλώνου σε οποιοδήποτε υπομονάδα στο αποθετήριο. Απαιτείται-φίλτρο και-υποβιβασμό-υποβρύχια . Αυτό μπορεί να ενεργοποιηθεί από προεπιλογή ρυθμίζοντας τον κλώνο.Η επιλογή Config FilterSubModules.
Ρυθμίστε έναν καθρέφτη του αποθετηρίου προέλευσης. Αυτό υποδηλώνει – . Σε σύγκριση με το–mirror όχι μόνο χαρτογραφεί τους τοπικούς κλάδους της πηγής σε τοπικά κλαδιά του στόχου, χαρτογραφεί όλα τα refs (συμπεριλαμβανομένων των κλάδων απομακρυσμένης παρακολούθησης, των σημειώσεων κ.λπ.) και ρυθμίζει μια διαμόρφωση refspec έτσι ώστε όλα αυτά τα refs να αντικατασταθούν από μια απομακρυσμένη ενημέρωση Git στο αποθετήριο προορισμού.
Αντί να χρησιμοποιείτε την προέλευση απομακρυσμένου ονόματος για να παρακολουθείτε το ανάντη αποθετήριο, χρησιμοποιήστε . Παρακάμψε τον κλώνο.defaultremotename από το config.
Αντί να δείχνει το νεοσύστατο κεφάλι στο υποκατάστημα που υποδεικνύεται από το κλωνοποιημένο αποθετήριο’το κεφάλι, επισημάνετε τον κλάδο αντ ‘αυτού. Σε ένα αποθετήριο μη λίθου, αυτός είναι ο κλάδος που θα ελεγχθεί. –Το υποκατάστημα μπορεί επίσης να πάρει ετικέτες και να αποσυνδέσει το κεφάλι σε αυτό το δεσμευμένο στο αποθετήριο που προέκυψε.
Όταν δίνεται, και το αποθετήριο για κλώνο από είναι πρόσβαση μέσω SSH, αυτό καθορίζει μια διαδρομή μη προοπτικής για την εντολή που τρέχει στο άλλο άκρο.
Καθορίστε τον κατάλογο από τον οποίο θα χρησιμοποιηθούν πρότυπα · (Ανατρέξτε στην ενότητα “Κατάλογος προτύπων” του Git-init [1].·
Ορίστε μια μεταβλητή διαμόρφωσης στο νεοσύστατο αποθετήριο. αυτό τίθεται σε ισχύ αμέσως μετά την προετοιμασία του αποθετηρίου, αλλά πριν από την παραλαβή του απομακρυσμένου ιστορικού ή τα αρχεία ελέγχονται. Το κλειδί είναι στην ίδια μορφή όπως αναμένεται από τον Git-Config [1] (Ε.σολ., πυρήνας.eol = true). Εάν δοθούν πολλαπλές τιμές για το ίδιο κλειδί, κάθε τιμή θα γραφτεί στο αρχείο ρυθμίσεων. Αυτό το καθιστά ασφαλές, για παράδειγμα, να προσθέσετε πρόσθετα refspecs στο τηλεχειριστήριο προέλευσης.
Λόγω των περιορισμών της τρέχουσας εφαρμογής, ορισμένες μεταβλητές διαμόρφωσης δεν τίθενται σε ισχύ μέχρι μετά την αρχική λήψη και το checkout. Οι μεταβλητές διαμόρφωσης που είναι γνωστό ότι δεν τίθενται σε ισχύ είναι: απομακρυσμένες..καθρέφτη και απομακρυσμένο..ταγκόπτιος . Χρησιμοποιήστε τις αντίστοιχες επιλογές-mirror και-χωρίς ετικέτες.
Δημιουργώ ένα αβαθής κλώνος με ιστορικό που περικυκλώνεται στον καθορισμένο αριθμό δεσμεύσεων. Υπονοεί-Single-Branch εκτός αν δοθεί το-single-branch για να φέρει τις ιστορίες κοντά στις άκρες όλων των κλάδων. Εάν θέλετε να κλωνοποιήσετε υπομονάδα ρηχά, περάστε επίσης-shall-submodules .
Δημιουργήστε έναν ρηχό κλώνο με ιστορικό μετά την καθορισμένη ώρα.
Δημιουργήστε έναν ρηχό κλώνο με ιστορικό, εξαιρουμένων των δεσμεύσεων προσβάσιμων από συγκεκριμένο απομακρυσμένο κλάδο ή ετικέτα. Αυτή η επιλογή μπορεί να καθοριστεί πολλές φορές.
Κλώνος μόνο το ιστορικό που οδηγεί στην άκρη ενός μόνο κλάδου, είτε καθορίζεται από την επιλογή -branch είτε το πρωτογενές κλάδο remote’s head points at. Περαιτέρω μεταφέρει στο προκύπτον αποθετήριο θα ενημερώσει μόνο τον κλάδο απομακρυσμένης παρακολούθησης για τον κλάδο Αυτή η επιλογή χρησιμοποιήθηκε για την αρχική κλωνοποίηση. Εάν το κεφάλι στο τηλεχειριστήριο δεν έδειξε σε κανένα κλάδο όταν έγινε κλώνος με διάβρωμα, δεν δημιουργήθηκε κλάδος απομακρυσμένης παρακολούθησης.
Κύριος’t κλώνος οποιεσδήποτε ετικέτες και ρυθμίστε το τηλεχειριστήριο..tagopt =-no-tags στο config, εξασφαλίζοντας ότι κέρδισαν μελλοντικές λειτουργίες pull git και git fetch’να ακολουθήσετε οποιεσδήποτε ετικέτες. Οι επακόλουθες ρητές ετικέτες θα εξακολουθήσουν να λειτουργούν (βλ. Git-Fetch [1]).
Μπορεί να χρησιμοποιηθεί σε συνδυασμό με το-Single-Branch για να κλωνοποιήσει και να διατηρήσει ένα υποκατάστημα χωρίς αναφορές εκτός από ένα μόνο κλωνοποιημένο κλάδο. Αυτό είναι χρήσιμο e.σολ. Για να διατηρήσετε ελάχιστους κλώνους του προεπιλεγμένου κλάδου κάποιου αποθετηρίου για ευρετηρίαση αναζήτησης.
–Επαναφορά υποβιβασμού [=]
Μετά τη δημιουργία του κλώνου, αρχικοποιήστε και κλώνους υπομοντέλους με βάση το παρεχόμενο PathSpec. Εάν δεν παρέχεται κανένα pathspec, όλα τα υπομονάδα αρχικοποιούνται και κλωνοποιούνται. Αυτή η επιλογή μπορεί να δοθεί πολλές φορές για τα PathSpecs που αποτελούνται από πολλαπλές καταχωρήσεις. Ο προκύπτων κλώνος έχει υπομονάδα.Ενεργό σετ στο παρεχόμενο PathSpec, ή “.”(δηλαδή όλα τα υπομονάδα) Εάν δεν παρέχεται κανένα pathspec.
Οι υπομονάδες αρχικοποιούνται και κλωνοποιούνται χρησιμοποιώντας τις προεπιλεγμένες ρυθμίσεις τους. Αυτό είναι ισοδύναμο με την εκτέλεση της ενημέρωσης υπομονάδας GIT – -εκ -επαναλαμβανόμενη αμέσως μετά την ολοκλήρωση του κλώνου. Αυτή η επιλογή αγνοείται εάν το κλωνοποιημένο αποθετήριο δεν διαθέτει εργαστήριο/checkout (i.μι. αν δίδεται κάποιο από τα –
–[No-] ρηχά υποβρύχια
Όλα τα υπομόδια που κλωνοποιούνται θα είναι ρηχά με βάθος 1.
Όλα τα υπομόδια που κλωνοποιούνται θα χρησιμοποιήσουν την κατάσταση του υπομονάδα’S Remote-Tracking Branch για την ενημέρωση του υπομονάδα, παρά το superproject’S καταγράφηκε Sha-1. Ισοδύναμο με τη διέλευση -Remote στην ενημέρωση υπομονάδα GIT .
Αντί να τοποθετήσετε το κλωνοποιημένο αποθετήριο όπου υποτίθεται ότι είναι, τοποθετήστε το κλωνοποιημένο αποθετήριο στον καθορισμένο κατάλογο, στη συνέχεια κάντε ένα συμβολικό σύστημα αρχείων-αγνωστικού GIT συμβολική σύνδεση με εκεί. Το αποτέλεσμα είναι το αποθετήριο Git μπορεί να διαχωριστεί από το δέντρο εργασίας.
Ο αριθμός των υπομονάδων έλαβε ταυτόχρονα. Προεπιλεγμένες στο υπομονάδα.επιλογή fetchjobs.
Το (πιθανώς απομακρυσμένο) αποθετήριο για κλώνο από. Ανατρέξτε στην ενότητα URLs Git παρακάτω για περισσότερες πληροφορίες σχετικά με τον καθορισμό αποθετηρίων.
Το όνομα ενός νέου καταλόγου για κλώνη. Το “ανθρωπιστικό” μέρος του αποθετηρίου πηγής χρησιμοποιείται εάν δεν δοθεί ρητά ο κατάλογος (repo for/path/to/repo.Git και Foo για τον κεντρικό υπολογιστή.XZ: Foo/.git). Η κλωνοποίηση σε έναν υπάρχοντα κατάλογο επιτρέπεται μόνο εάν ο κατάλογος είναι άδειος.
Πριν από τη λήψη από το τηλεχειριστήριο, μεταφέρετε μια δέσμη από το δεδομένο και αποσυνδέστε τα δεδομένα στο τοπικό αποθετήριο. Οι αναφορές στο πακέτο θα αποθηκευτούν κάτω από το Hidden Refs/Bundle/* Namespace. Αυτή η επιλογή είναι ασυμβίβαστη με-βαθιά,-shallow-since, και-shallow-exclude .
Urls git
Γενικά, οι διευθύνσεις URL περιέχουν πληροφορίες σχετικά με το πρωτόκολλο μεταφοράς, τη διεύθυνση του απομακρυσμένου διακομιστή και τη διαδρομή προς το αποθετήριο. Ανάλογα με το πρωτόκολλο μεταφοράς, μερικές από αυτές τις πληροφορίες μπορεί να απουσιάζουν.
Το GIT υποστηρίζει πρωτόκολλα SSH, GIT, HTTP και HTTPS (Επιπλέον, FTP και FTPs μπορούν να χρησιμοποιηθούν για τη λήψη, αλλά αυτό είναι αναποτελεσματικό και καταργημένο, μην το χρησιμοποιείτε).
Η εγγενής μεταφορά (i.μι. git: // url) δεν έχει έλεγχο ταυτότητας και πρέπει να χρησιμοποιείται με προσοχή σε μη εξασφαλισμένα δίκτυα.
Μπορούν να χρησιμοποιηθούν οι ακόλουθες συνταγές μαζί τους:
- ssh: // [user@] host.XZ [: θύρα]/διαδρομή/προς/repo.git/
- Git: // Host.XZ [: θύρα]/διαδρομή/προς/repo.git/
- http [s]: // host.XZ [: θύρα]/διαδρομή/προς/repo.git/
- ftp [s]: // host.XZ [: θύρα]/διαδρομή/προς/repo.git/
Μια εναλλακτική σύνταξη τύπου SCP μπορεί επίσης να χρησιμοποιηθεί με το πρωτόκολλο SSH:
- [User@] Host.XZ: Διαδρομή/προς/repo.git/
Αυτή η σύνταξη αναγνωρίζεται μόνο εάν δεν υπάρχουν κλίσεις πριν από το πρώτο κόλον. Αυτό βοηθά στη διαφοροποίηση ενός τοπικού μονοπατιού που περιέχει ένα κόλον. Για παράδειγμα, η τοπική διαδρομή Foo: η ράβδος θα μπορούσε να οριστεί ως απόλυτη διαδρομή ή ./foo: μπαρ για να αποφύγετε παρερμηνεία ως URL SSH.
Τα πρωτόκολλα SSH και GIT υποστηρίζουν επιπλέον ~ επέκταση ονόματος χρήστη:
- ssh: // [user@] host.xz [: θύρα]/~ [χρήστης]/διαδρομή/προς/repo.git/
- Git: // Host.xz [: θύρα]/~ [χρήστης]/διαδρομή/προς/repo.git/
- [User@] Host.xz:/~ [χρήστης]/διαδρομή/προς/repo.git/
Για τα τοπικά αποθετήρια, που υποστηρίζονται επίσης από το GIT, μπορούν να χρησιμοποιηθούν οι ακόλουθες συνταγές:
- /διαδρομή/προς/repo.git/
- αρχείο: /// path/to/repo.git/
Αυτές οι δύο συντακτικές είναι ως επί το πλείστον ισοδύναμες, εκτός από το πρώτο υπονοεί -τοπική επιλογή.
κλώνος, φώτα και τραβήγμα, αλλά όχι ώθηση, θα δεχτεί επίσης ένα κατάλληλο αρχείο δέσμης. Δείτε το Git-Bundle [1].
Όταν ο Git δεν’Δεν ξέρετε πώς να χειριστείτε ένα συγκεκριμένο πρωτόκολλο μεταφοράς, προσπαθεί να χρησιμοποιήσει τον απομακρυσμένο βοηθό, αν υπάρχει κάποιος. Για να ζητήσετε ρητά έναν απομακρυσμένο βοηθό, μπορεί να χρησιμοποιηθεί η ακόλουθη σύνταξη:
Πού μπορεί να είναι μια διαδρομή, ένας διακομιστής και μια διαδρομή ή μια αυθαίρετη συμβολοσειρά URL που αναγνωρίζεται από τον συγκεκριμένο απομακρυσμένο βοηθό που επικαλείται. Δείτε το Gitremote-Helpers [7] για λεπτομέρειες.
Εάν υπάρχει ένας μεγάλος αριθμός απομακρυσμένων αποθετηρίων και θέλετε να χρησιμοποιήσετε μια διαφορετική μορφή για αυτούς (έτσι ώστε οι διευθύνσεις που χρησιμοποιείτε θα ξαναγραφούν σε διευθύνσεις URL που λειτουργούν), μπορείτε να δημιουργήσετε μια ενότητα διαμόρφωσης της φόρμας:
[url “”] αντίθετα =
Για παράδειγμα, με αυτό:
[url "git: // git.πλήθος.xz/"] αντίθετα = κεντρικός υπολογιστής.xz:/path/to/fineof = εργασία:
Μια διεύθυνση URL όπως “Work: Repo.Git “ή Like” Host.xz:/path/to/repo.git “θα ξαναγραφεί σε οποιοδήποτε πλαίσιο που παίρνει μια διεύθυνση URL για να είναι” git: // git.πλήθος.XZ/repo.Git “.
Εάν θέλετε να ξαναγράψετε τις διευθύνσεις URL μόνο για ώθηση, μπορείτε να δημιουργήσετε μια ενότητα διαμόρφωσης της φόρμας:
[url “”] pushinsteadof =
Για παράδειγμα, με αυτό:
[url "ssh: // Παράδειγμα.org/"] pushinsteadof = git: // Παράδειγμα.org/
Μια διεύθυνση URL όπως “git: // Παράδειγμα.org/path/to/repo.git “θα ξαναγραφεί στο” ssh: // Παράδειγμα.org/path/to/repo.Git “για ώθηση, αλλά τα τραβήγματα θα εξακολουθούν να χρησιμοποιούν την αρχική διεύθυνση URL.
Παραδείγματα
- Κλώνος από ανάντη:
$ git clone git: // git.πυρήνας.org/pub/scm/. /Linux.git my-linux $ cd my-linux $ make
$ git clone -l -s -n . ../Αντιγραφή $ CD ../Αντιγραφή $ git show-branch
$ git clone -Reference /git /linux.git \ git: // git.πυρήνας.org/pub/scm/. /Linux.git \ my-linux $ cd my-linux
$ git clone -Bare -l/home/proj/.git/pub/scm/proj.γελοιώνω
ΔΙΑΜΟΡΦΩΣΗ
Τα πάντα κάτω από αυτή τη γραμμή σε αυτή την ενότητα περιλαμβάνονται επιλεκτικά από την τεκμηρίωση Git-Config [1]. Το περιεχόμενο είναι το ίδιο με αυτό’S βρέθηκε εκεί:
μέσα σε αυτό.μοίρα
Καθορίστε τον κατάλογο από τον οποίο θα αντιγραφούν τα πρότυπα. (Ανατρέξτε στην ενότητα “Κατάλογος προτύπων” του Git-init [1].·
Επιτρέπει την υπεράσπιση του προεπιλεγμένου ονόματος κλάδου e.σολ. Κατά την προετοιμασία ενός νέου αποθετηρίου.
Το όνομα του τηλεχειριστηρίου για να δημιουργήσετε κατά την κλωνοποίηση ενός αποθετηρίου. Προεπιλογή προς την προέλευση και μπορεί να αντικατασταθεί με τη διέλευση της επιλογής γραμμής εντολών-Origin στο Git-Clone [1].
Απόρριψη για να κλωνοποιήσετε ένα αποθετήριο εάν είναι ένα ρηχό, μπορεί να αντικατασταθεί από την επιλογή Passing-REJECT-Shallow στη γραμμή εντολών. Δείτε το Git-Clone [1]
Εάν παρέχεται ένα μερικό φίλτρο κλώνου (βλέπε-φίλτρο στο GIT-Rev-List [1]) και–Αναφορά-Submodules χρησιμοποιείται, εφαρμόστε επίσης το φίλτρο σε υπομονάδα.
Γελοιώνω
Μέρος της σουίτας Git [1]
Κλάδος κλώνου Git – Πώς να κλωνοποιήσετε ένα συγκεκριμένο κλάδο

Bolaji Ayodeji
Σε αντίθεση με τα παλαιότερα συστήματα κεντρικής έκδοσης όπως το SVN και το CVS, το GIT διανέμεται. Κάθε προγραμματιστής έχει το πλήρες ιστορικό και τον έλεγχο του κώδικα τοπικά ή εξ αποστάσεως. Μπορούν επίσης να έχουν πρόσβαση ή να χειραγωγούν πολλά μέρη του κώδικα, όπως κρίνουν κατάλληλα από διαφορετικές τοποθεσίες.
Δεδομένου ότι ο Linus Torvalds (ο διάσημος δημιουργός του πυρήνα του λειτουργικού συστήματος Linux) δημιούργησε το GIT το 2005 για την ανάπτυξη του πυρήνα του Linux, έχει γίνει το πιο ευρέως χρησιμοποιούμενο σύγχρονο σύστημα ελέγχου έκδοσης στον κόσμο.
Σε αυτό το άρθρο, θα σας παρουσιάσω τις ροές εργασίας Git Clone και Git Branch και θα σας δείξω πώς μπορείτε να κλωνοποιήσετε ένα συγκεκριμένο υποκατάστημα με βάση τις ανάγκες σας. Ας ξεκινήσουμε! ?
Προϋποθέσεις
- Βασικές γνώσεις του τερματικού
- Δυνατότητα πληροφορικής εντολών στο τερματικό
- Git εγκατεστημένο (θα σας δείξω ακόμα πώς)
- Ένας λογαριασμός GitHub
- Ένα χαμόγελο στο πρόσωπό σας (βάλτε αυτόν τον φίλο χαμόγελου ?·
Γρήγορη εισαγωγή στο Git και το GitHub
Γελοιώνω είναι ένα κατανεμημένο σύστημα ελέγχου έκδοσης που έχει σχεδιαστεί για να παρακολουθεί τις αλλαγές σε ένα έργο (κωδικός) στην ανάπτυξη λογισμικού. Προορίζεται να επιβάλει συντονισμό, συνεργασία, ταχύτητα και αποτελεσματικότητα μεταξύ των προγραμματιστών.
Github, Από την άλλη πλευρά, είναι μια υπηρεσία φιλοξενίας μέσω διαδικτύου για τον έλεγχο έκδοσης χρησιμοποιώντας το GIT. Προσφέρει όλη τη λειτουργικότητα διαχείρισης του GIT και της διαχείρισης του κατανεμημένου ελέγχου έκδοσης και της διαχείρισης πηγαίου κώδικα, καθώς και την προσθήκη περισσότερων χαρακτηριστικών για τον κωδικό υπολογιστή.
Πώς να εγκαταστήσετε το git στα Windows
Κατεβάστε και εγκαταστήστε το τελευταίο GIT για το Windows Installer εδώ.
Πώς να εγκαταστήσετε το Git στο Linux
Ακολουθούν οι εντολές που βασίζονται στη διανομή Linux:
Debian ή Ubuntu
Sudo apt-get update sudo apt-get εγκατάσταση git Μαλακό καπέλλο
Sudo DNF Εγκατάσταση GIT Εκατοστό
Sudo Yum Install Git Αψίδα Linux
sudo pacman -sy git Μύγα
Sudo αναδύεται-Ask-Verbose dev-vcs/git Πώς να εγκαταστήσετε το git σε Mac
Κατεβάστε και εγκαταστήστε το τελευταίο git για το Mac Installer εδώ.
Ή μπορείτε να πληκτρολογήσετε αυτήν την εντολή:
Brew Install Git Τώρα που έχουμε εγκαταστήσει το Git, ας προχωρήσουμε στο σεμινάριο.
Εισαγωγή στον κλώνο Git
Το GIT σάς επιτρέπει να διαχειρίζεστε και να έκδοση του έργου σας σε ένα “αποθετήριο”. Αυτό το αποθετήριο αποθηκεύεται σε μια υπηρεσία φιλοξενίας μέσω διαδικτύου για τον έλεγχο έκδοσης, όπως το GitHub.
Στη συνέχεια, μπορείτε να κλωνοποιήσετε αυτό το αποθετήριο στο τοπικό σας μηχάνημα και να έχετε όλα τα αρχεία και τα κλαδιά τοπικά (θα εξηγήσω περισσότερα για τα κλαδιά σύντομα).

Για παράδειγμα, μπορείτε να κλωνοποιήσετε το αποθετήριο του FreecodeCamp με SSH όπως έτσι:
git clone [email protected]: Freecodecamp/Freecodecamp.γελοιώνω Εισαγωγή σε υποκαταστήματα Git
Όταν εργάζεστε σε ένα έργο, πιθανότατα θα έχετε διαφορετικά χαρακτηριστικά. Και πολλοί συνεισφέροντες θα εργαστούν σε αυτό το έργο και τα χαρακτηριστικά του.
Τα υποκαταστήματα σας επιτρέπουν να δημιουργήσετε μια “παιδική χαρά” με τα ίδια αρχεία στο Master Branch. Μπορείτε να χρησιμοποιήσετε αυτό το υποκατάστημα για να δημιουργήσετε ανεξάρτητα χαρακτηριστικά, να δοκιμάσετε νέα χαρακτηριστικά, να κάνετε αλλαγές σπάσιμο, να δημιουργήσετε διορθώσεις, να γράψετε έγγραφα ή να δοκιμάσετε ιδέες χωρίς να σπάσετε ή να επηρεάσετε τον κωδικό παραγωγής. Όταν τελειώσετε, συγχωνεύετε το υποκατάστημα στον κλάδο της παραγωγής.
Η διακλάδωση είναι μια βασική ιδέα στο GIT που χρησιμοποιείται επίσης στο GitHub για τη διαχείριση των ροών εργασίας διαφορετικών εκδόσεων ενός έργου. Ο κύριος υποκατάστημα είναι πάντα ο προεπιλεγμένος κλάδος σε ένα αποθετήριο που θεωρείται συχνότερα “κωδικός παραγωγής και αναπτυσσόμενου”. Τα νέα υποκαταστήματα όπως ο κωδικός πρόσβασης-auth ή το refactor-signup-ux μπορούν να δημιουργηθούν από το Master Branch.

Πώς να κλωνοποιήσετε τα κλαδιά Git
Ενώ μπορείτε να κλωνοποιήσετε αποθετήρια με την εντολή clone git, να έχετε κατά νου ότι αυτό οι κλώνοι το κλάδο και το απομακρυσμένο κεφάλι . Αυτό είναι συνήθως κύριο από προεπιλογή και περιλαμβάνει όλους τους άλλους κλάδους του αποθετηρίου.
Έτσι, όταν κλωνοποιείτε ένα αποθετήριο, κλωνοποιείτε τον κύριο και όλους τους άλλους κλάδους. Αυτό σημαίνει ότι θα πρέπει να ελέγξετε τον εαυτό σας άλλο.
Ας υποθέσουμε ότι το έργο σας σε ένα έργο είναι να εργαστείτε σε μια λειτουργία για να προσθέσετε έλεγχο ταυτότητας χωρίς κωδικό πρόσβασης σε έναν πίνακα ελέγχου χρήστη. Και αυτή η λειτουργία βρίσκεται στο υποκατάστημα χωρίς κωδικό πρόσβασης.
Πραγματικά δεν χρειάζεστε το κύριο υποκατάστημα αφού το “κλάδο των χαρακτηριστικών” σας θα συγχωνευθεί μετά. Πώς λοιπόν κλωνοποιείτε αυτό το υποκατάστημα χωρίς κωδικό πρόσβασης χωρίς να τραβήξετε όλους τους άλλους κλάδους με “μια δέσμη αρχείων που δεν χρειάζεστε”?
Δημιούργησα αυτό το χώρο αποθήκευσης δείγματος για να το εξηγήσω αυτό. Αυτό το αποθετήριο κατέχει ένα απλό blog που είναι κατασκευασμένο με το NextJS και διαθέτει τέσσερα εικονικά κλαδιά:
- κύριος
- δούλος
- σκαλωσιά
- Κωδικός πρόσβασης-auth
Στο NextJS, οποιοδήποτε αρχείο μέσα στις σελίδες του φακέλου/API χαρτογραφείται στη διαδρομή/API/* και θα αντιμετωπίζεται ως τελικό σημείο API αντί για σελίδα . Στο αποθετήριο μας, δημιούργησα διαφορετικά ψευδικά API σε αυτόν τον κατάλογο για να κάνω κάθε κλάδο διαφορετικό.
Ο κύριος υποκατάστημα κατέχει το αρχείο σελίδες/api/γεια.JS Ενώ ο κωδικός πρόσβασης-auth κρατά το αρχείο σελίδες/api/auth.JS. Κάθε αρχείο επιστρέφει απλώς μια εικονική απάντηση κειμένου. Δείτε την απάντηση του Master ‘s Hello API εδώ (με ένα ειδικό μήνυμα για εσάς ?·.
Ας κλωνοποιήσουμε το αποθετήριο:
git clone [email protected]: bolajiayodeji/nextjs-blog.γελοιώνω Αυτό μας δίνει πρόσβαση σε όλους τους κλάδους σε αυτό το χώρο αποθήκευσης και μπορείτε εύκολα να αλλάξετε ανάμεσα σε κάθε έκδοση και τα αρχεία του.
υποκατάστημα Git -a 
Αναρωτιέμαι πού το τηλεχειριστήρια/προέλευση/.. Τα κλαδιά προήλθαν από?
Όταν κλωνοποιείτε ένα χώρο αποθήκευσης, τραβάτε δεδομένα από ένα αποθετήριο στο διαδίκτυο ή έναν εσωτερικό διακομιστή γνωστό ως το μακρινός. Η λέξη προέλευση είναι ένα ψευδώνυμο που δημιουργείται από το git σας για να αντικαταστήσετε την απομακρυσμένη διεύθυνση URL (μπορείτε να αλλάξετε ή να καθορίσετε ένα άλλο ψευδώνυμο αν θέλετε).
Αυτά τα τηλεχειριστήρια/προέλευση/.. Τα υποκαταστήματα σας δείχνουν πίσω στο αποθετήριο προέλευσης που κλωνοποιήσατε από το Διαδίκτυο, ώστε να μπορείτε ακόμα να εκτελέσετε έλξη/ώθηση από την προέλευση.

Έτσι, όταν κλωνοποιείτε το Master στο μηχάνημά σας, το Remotes/Origin/Master είναι ο αρχικός κύριος κλάδος στο διαδίκτυο και ο Master βρίσκεται στο τοπικό σας μηχάνημα. Έτσι θα τραβήξετε/πιέζετε από και προς τα τηλεχειριστήρια/προέλευση/κύριο .
Συνοψίζοντας Μακρινός είναι η διεύθυνση URL που σας δείχνει στο χώρο αποθήκευσης στο Διαδίκτυο Προέλευση είναι ένα ψευδώνυμο για αυτήν την απομακρυσμένη διεύθυνση URL.

Πώς να κλωνοποιήσετε ένα συγκεκριμένο κλάδο
Τώρα ας κλωνοποιήσουμε ένα συγκεκριμένο υποκατάστημα από το αποθετήριο demo μας. Υπάρχουν δύο τρόποι για να κλωνοποιήσετε ένα συγκεκριμένο κλάδο. Μπορείς είτε:
- Κλωνοποιήστε το αποθετήριο, μεταφέρετε όλους τους κλάδους και το checkout σε ένα συγκεκριμένο κλάδο αμέσως.
- Κλωνοποιήστε το αποθετήριο και φτιάξτε μόνο ένα μόνο κλάδο.
Επιλογή ένα
Git Clone -Branch


Επιλογή δύο
Git Clone-Branch-Single-Branch


Εάν εκτελείτε σελίδες CD/API, θα βρείτε την Auth.Αρχείο JS στο υποκατάστημα χωρίς κωδικό πρόσβασης όπως αναμένεται από την προηγούμενη ρύθμιση.
συμπέρασμα
Μπορεί να εξαντλείτε το Διαδίκτυο ή τον αποθηκευτικό χώρο, αλλά πρέπει να εργαστείτε σε μια εργασία σε ένα συγκεκριμένο υποκατάστημα. Ή ίσως θελήσετε να κλωνοποιήσετε ένα συγκεκριμένο κλάδο με περιορισμένα αρχεία για διάφορους λόγους. Ευτυχώς, το Git σας παρέχει την ευελιξία να το κάνετε αυτό. Κάμψτε τους μυς σας και δοκιμάστε το, υπάρχουν πολύ περισσότερα “git” για να μάθετε.
Ένα κάθε φορά, ναι? ✌?
Πραγματοποιεί κλώνοι κλώνου Git

Η εντολή Git Clone χρησιμοποιείται για τη δημιουργία ενός αντιγράφου ενός συγκεκριμένου αποθετηρίου ή κλάδου μέσα σε ένα αποθετήριο.
Το GIT είναι ένα κατανεμημένο σύστημα ελέγχου έκδοσης. Μεγιστοποιήστε τα πλεονεκτήματα ενός πλήρους αποθετηρίου στη δική σας μηχανή με κλωνοποίηση.
Τι κάνει ο κλώνος Git?
git clone https: // github.com/github/training-kit.γελοιώνω
Όταν κλωνοποιείτε ένα αποθετήριο, δεν παίρνετε ένα αρχείο, όπως μπορείτε σε άλλα κεντρικά συστήματα ελέγχου έκδοσης. Με την κλωνοποίηση με το GIT, παίρνετε ολόκληρο το χώρο αποθήκευσης – όλα τα αρχεία, όλα τα κλάδους και όλες τις δεσμεύσεις.
Η κλωνοποίηση ενός αποθετηρίου γίνεται συνήθως μόνο μία φορά, στην αρχή της αλληλεπίδρασής σας με ένα έργο. Μόλις ένα αποθετήριο υπάρχει ήδη σε ένα τηλεχειριστήριο, όπως στο GitHub, τότε θα κλωνοποιούσατε αυτό το αποθετήριο, ώστε να μπορείτε να αλληλεπιδράσετε με αυτό τοπικά. Μόλις κλωνοποιήσετε ένα αποθετήριο, δεν θα χρειαστεί να το κλωνοποιήσετε ξανά για να κάνετε τακτική ανάπτυξη.
Η ικανότητα συνεργασίας με ολόκληρο το χώρο αποθήκευσης σημαίνει ότι όλοι οι προγραμματιστές μπορούν να λειτουργούν πιο ελεύθερα. Χωρίς να περιορίζεται από τα αρχεία στα οποία μπορείτε να εργαστείτε, μπορείτε να εργαστείτε σε ένα κλάδο χαρακτηριστικών για να κάνετε αλλαγές με ασφάλεια. Τότε μπορείς:
- Αργότερα χρησιμοποιήστε το Git Push για να μοιραστείτε το υποκατάστημα σας με το απομακρυσμένο αποθετήριο
- Ανοίξτε ένα αίτημα έλξης για να συγκρίνετε τις αλλαγές με τους συνεργάτες σας
- Δοκιμάστε και αναπτύξτε ανάλογα με τις ανάγκες από το υποκατάστημα
- συγχώνευση στον κύριο κλάδο.
Πώς να χρησιμοποιήσετε τον κλώνο GIT
Κοινές χρήσεις και επιλογές για κλώνο Git
- Git Clone: κλώνος (λήψη) Ένα αποθετήριο που υπάρχει ήδη στο GitHub, συμπεριλαμβανομένων όλων των αρχείων, των κλάδων και των δεσμεύσεων.
- Git Clone -Mirror: Clone a Repository αλλά χωρίς τη δυνατότητα επεξεργασίας οποιουδήποτε από τα αρχεία. Αυτό περιλαμβάνει τα refs ή τα κλαδιά. Μπορεί να θέλετε να το χρησιμοποιήσετε εάν προσπαθείτε να δημιουργήσετε ένα δευτερεύον αντίγραφο ενός αποθετηρίου σε ξεχωριστό τηλεχειριστήριο και θέλετε να ταιριάξετε όλα τα κλαδιά. Αυτό μπορεί να συμβεί κατά τη διάρκεια της διαμόρφωσης χρησιμοποιώντας ένα νέο τηλεχειριστήριο για τη φιλοξενία σας GIT ή όταν χρησιμοποιείτε GIT κατά τη διάρκεια αυτοματοποιημένων δοκιμών.
- Git Clone-Single-Branch: κλώνος μόνο ένα υποκατάστημα
- Git Clone -S -SPARSE: Αντί να πληρώνουν τον κατάλογο εργασίας με όλα τα αρχεία της τρέχουσας δέσμευσης αναδρομικά, συμπληρώστε μόνο τα αρχεία που υπάρχουν στον ριζικό κατάλογο. Αυτό θα μπορούσε να βοηθήσει με την απόδοση κατά την κλωνοποίηση μεγάλων αποθετηρίων με πολλούς καταλόγους και υποτομείς.
- `git clone-recurse-submodules [=
Μπορείτε να δείτε όλες τις πολλές επιλογές με τον κλώνο Git στην τεκμηρίωση του Git-SCM.
Παραδείγματα κλώνου Git
Η πιο συνηθισμένη χρήση της κλωνοποίησης είναι απλώς να κλωνοποιήσετε ένα αποθετήριο. Αυτό γίνεται μόνο μία φορά, όταν αρχίζετε να εργάζεστε σε ένα έργο και θα ακολουθήσετε τη σύνταξη του Git Clone [url] .
Git Clone ένα υποκατάστημα
Git Clone-Single-Branch: Από προεπιλογή, ο Git Clone θα δημιουργήσει απομακρυσμένους κλάδους παρακολούθησης για όλους τους κλάδους που υπάρχουν σήμερα στο τηλεχειριστήριο που κλωνοποιείται. Το μόνο τοπικό υποκατάστημα που δημιουργείται είναι ο προεπιλεγμένος κλάδος.
Αλλά, ίσως για κάποιο λόγο θα θέλατε μόνο Αποκτήστε ένα κλάδο απομακρυσμένης παρακολούθησης για ένα συγκεκριμένο κλάδο ή κλώνο ένα υποκατάστημα που δεν είναι ο προεπιλεγμένος κλάδος. Και τα δύο αυτά πράγματα συμβαίνουν όταν χρησιμοποιείτε-Single-Branch με κλώνο Git .
Αυτό θα δημιουργήσει έναν κλώνο που έχει μόνο δεσμεύσεις που περιλαμβάνονται στην τρέχουσα γραμμή ιστορικού. Αυτό σημαίνει ότι δεν θα κλωνοποιηθούν άλλοι κλάδοι. Μπορείτε να καθορίσετε έναν συγκεκριμένο κλάδο στον κλώνο, αλλά ο προεπιλεγμένος κλάδος, συνήθως κύριος, θα επιλεγεί από προεπιλογή.
Για να κλωνοποιήσετε ένα συγκεκριμένο κλάδο, χρησιμοποιήστε:
Git Clone [url]-Branch [Branch]-Single-Branch
Η κλωνοποίηση μόνο ενός κλάδου δεν προσθέτει οφέλη εκτός εάν το αποθετήριο είναι πολύ μεγάλο και περιέχει δυαδικά αρχεία που επιβραδύνουν την απόδοση του αποθετηρίου. Η συνιστώμενη λύση είναι η βελτιστοποίηση της απόδοσης του αποθετηρίου πριν βασίζεστε σε στρατηγικές κλωνοποίησης ενός κλάδου.
κλώνος με SSH
Ανάλογα με τον τρόπο ταυτότητας με τον απομακρυσμένο διακομιστή, μπορείτε να επιλέξετε να κλωνοποιήσετε χρησιμοποιώντας το SSH.
Εάν επιλέξετε να κλωνοποιήσετε με SSH, θα χρησιμοποιούσατε μια συγκεκριμένη διαδρομή SSH για το αποθετήριο αντί για μια διεύθυνση URL. Συνήθως, οι προγραμματιστές επικυρωθούν με SSH από το επίπεδο του μηχανήματος. Αυτό σημαίνει ότι πιθανότατα θα κλωνοποιήσατε με HTTPS ή με SSH – όχι ένα μείγμα και των δύο για τα αποθετήρια σας.
- Branch Git: Αυτό δείχνει τους υπάρχοντες κλάδους στο τοπικό αποθετήριο σας. Μπορείτε επίσης να χρησιμοποιήσετε το Git Branch [banch-name] για να δημιουργήσετε ένα υποκατάστημα από την τρέχουσα τοποθεσία σας ή το υποκατάστημα GIT-όλα για να δείτε όλους τους κλάδους, και τα δύο τοπικά στο μηχάνημά σας και τους απομακρυσμένους κλάδους παρακολούθησης που αποθηκεύονται από το τελευταίο git pull ή git fetch από το τηλεχειριστήριο.
- Git Pull: Ενημερώνει το τρέχον τοπικό υποκατάστημα εργασίας σας με όλες τις νέες δεσμεύσεις από τον αντίστοιχο απομακρυσμένο υποκατάστημα στο GitHub. Το Git Pull είναι ένας συνδυασμός συγχώνευσης Git Fetch και Git .
- Git Push: Μεταφορτώνει όλα τα τοπικά υποκατάστημα που δεσμεύεται στο τηλεχειριστήριο.
- Git Remote -v: Εμφάνιση των σχετικών απομακρυσμένων αποθετηρίων και του αποθηκευμένου ονόματός τους, όπως η προέλευση .
Ξεκινήστε με το git και το github
Αναθεωρήστε τον κωδικό, τη διαχείριση έργων και τη δημιουργία λογισμικού παράλληλα με 40 εκατομμύρια προγραμματιστές.
Git: κλώνος Ένας συγκεκριμένος κλάδος
Από προεπιλογή, η κλωνοποίηση ενός αποθετηρίου Git δημιουργεί ένα αντίγραφο ολόκληρου του απομακρυσμένου αποθετηρίου στο τοπικό μηχάνημα. Ωστόσο, σε ορισμένες περιπτώσεις, ένα αποθετήριο GIT μπορεί να είναι τεράστιο και ίσως να μην χρειαστείτε όλα τα κλαδιά για την εργασία σας.
Μερικές φορές, μπορεί να θέλετε να κλωνοποιήσετε μόνο ένα συγκεκριμένο κλάδο, επιτρέποντάς σας να εργαστείτε σε αυτόν τον κλάδο χωρίς να επηρεάσετε άλλα αρχεία. Είναι χρήσιμο να κλωνοποιήσετε μόνο ένα συγκεκριμένο κλάδο όταν εργάζεστε σε ένα χαρακτηριστικό ή κατά την επίλυση ενός σφάλματος που υπάρχει μόνο σε αυτόν τον κλάδο.
Σε αυτό το σεμινάριο, θα μάθετε να κλωνοποιείτε ένα συγκεκριμένο υποκατάστημα GIT.

- Git εγκατεστημένο (δείτε πώς να εγκαταστήσετε το Git στο Ubuntu, MacOS, Windows, Centos 7 ή Centos 8).
- Ένα αποθετήριο Git.
Κλώνος ειδικός κλάδος git
Η εντολή που χρησιμοποιείται για την κλώνη ενός κλάδου git είναι κλώνος . Ωστόσο, το κλώνος Κλώνες εντολών όλα τα κλαδιά και το τηλεχειριστήριο ΚΕΦΑΛΙ (συνήθως το κύριος / κύριος κλαδί).
Υπάρχουν δύο τρόποι για να κλωνοποιήσετε ένα μόνο κλάδο Git κλώνος :
- Μέθοδος 1. Κλωνοποιήστε ολόκληρο το χώρο αποθήκευσης, μεταφέρετε όλους τους κλάδους και ελέγξτε τον καθορισμένο κλάδο μετά τη διαδικασία κλωνοποίησης.
- Μέθοδος 2. Κλώνος μόνο ένα συγκεκριμένο κλάδο και κανένα άλλο κλάδο.
Τα παρακάτω τμήματα εξηγούν και τις δύο μεθόδους, ώστε να μπορείτε να τις χρησιμοποιήσετε σύμφωνα με τις προτιμότητά σας.
Μέθοδος 1 – Λάβετε όλους τους κλάδους και το checkout ένα
Χρησιμοποιήστε αυτήν τη μέθοδο για να μεταφέρετε όλους τους κλάδους από ένα χώρο αποθήκευσης και στη συνέχεια να ελέγξετε ένα μόνο. Ο καθορισμένος κλάδος γίνεται ο διαμορφωμένος τοπικός κλάδος για το Git Push and Git Pull. Ωστόσο, σημειώστε ότι η εντολή εξακολουθεί να φέρνει όλα τα αρχεία από όλα τα υποκαταστήματα του αποθετηρίου.
Χρησιμοποιήστε την ακόλουθη σύνταξη για να μεταφέρετε όλους τους κλάδους από το απομακρυσμένο αποθετήριο και να ελέγξετε το καθορισμένο:
git clone-branch [branch_name] [remote-url] Σημείωση: Αντικαταστήστε τις μεταβλητές [branch_name] και [remote-url] με το σωστό όνομα κλάδου και απομακρυσμένη διεύθυνση URL.

Στο παραπάνω παράδειγμα, φέρνουμε όλους τους κλάδους από το καθορισμένο αποθετήριο και ελέγξουμε το νέος τύπος κλαδί. Μετά την αλλαγή του καταλόγου σε αυτόν που περιέχει το αποθετήριο, ο προεπιλεγμένος κλάδος είναι νέος τύπος , δεν κύριος .
Μέθοδος 2 – Λήψη αρχείων μόνο από έναν μόνο κλάδο
Η δεύτερη μέθοδος σάς επιτρέπει να μεταφέρετε μόνο τα αρχεία από τον καθορισμένο κλάδο και τίποτα άλλο. Κάνοντας αυτό εξοικονομεί πολύ χώρο στον σκληρό δίσκο και μειώνει το μέγεθος λήψης. Δεδομένου ότι ορισμένα αποθετήρια μπορεί να είναι πολύ μεγάλα, αυτή η μέθοδος μειώνει τη χρήση του εύρους ζώνης εάν πρέπει να εργαστείτε μόνο σε συγκεκριμένο κλάδο.
Σημείωση: Προκειμένου να φτάσετε μόνο ένα κλάδο, GIT έκδοση 1.7.Απαιτείται 10 ή αργότερα.
git clone-branch [branch_name]-single-branch [remote-url] 
Η εντολή λαμβάνει τον καθορισμένο κλάδο και αντιγράφει μόνο τα αρχεία που περιέχονται σε αυτόν τον κλάδο, χωρίς να λαμβάνουν άλλα κλάδους ή αρχεία. Τρέξιμο υποκατάστημα τζάκι δείχνει ποιοι κλάδοι αντιγράφηκαν.
Αυτό το σεμινάριο έδειξε πώς να φέρει ένα μόνο υποκατάστημα από ένα αποθετήριο Git. Η επιλογή είναι χρήσιμη όταν δεν θέλετε να κατεβάσετε ολόκληρο το χώρο αποθήκευσης ή όταν θέλετε να εργαστείτε μόνο σε μία μόνο λειτουργία.
Για περισσότερα tutorials Git, ανατρέξτε στον οδηγό του Git Beginner, δείτε το Tutorial Git Tags ή τον Οδηγό Submodule Git.
Ηταν αυτό το άρθρο χρήσιμο?
Μπόσκο μαριχάν
Έχοντας εργαστεί ως εκπαιδευτικός και συγγραφέας περιεχομένου, σε συνδυασμό με το δια βίου πάθος του για όλα τα πράγματα υψηλής τεχνολογίας, ο Bosko προσπαθεί να απλοποιήσει τις περίπλοκες έννοιες και να τα κάνει φιλικά προς το χρήστη. Αυτό τον οδήγησε σε τεχνική γραφή στο Phoenixnap, όπου συνεχίζει την αποστολή του να διαδίδει τη γνώση.
Στη συνέχεια θα πρέπει να διαβάσετε
22 Μαρτίου 2023
Αυτό το σεμινάριο παρουσιάζει δύο μεθόδους για τη συγχώνευση του κύριου κλάδου σε άλλο υποκατάστημα στο Git. Δείτε παραδείγματα και περιπτώσεις χρήσης.
28 Σεπτεμβρίου 2022
Η εντολή submodule init προσθέτει καταχωρήσεις υπομονάδων στο τοπικό αρχείο διαμόρφωσης git. Αυτό το σεμινάριο σας δείχνει πώς να χρησιμοποιήσετε το git submodule init με κοινά παραδείγματα χρήσης.
16 Μαρτίου 2023
Τα υποκαταστήματα στο GIT είναι ανεξάρτητες γραμμές ανάπτυξης σε ένα αποθετήριο. Αυτό το σεμινάριο δείχνει πώς να τραβήξετε όλα τα κλαδιά από ένα απομακρυσμένο αποθετήριο σε ένα τοπικό στο Git.
21 Φεβρουαρίου 2023
Αυτό το άρθρο συγκρίνει και δίνει συμβουλές σχετικά με την επιλογή μεταξύ SSH και HTTPS – δύο πρωτόκολλα δικτύου που χρησιμοποιούνται για την εξασφάλιση της σύνδεσης με απομακρυσμένα αποθετήρια.



