Το Git Pull εξήγησε
git pull
είναι μια εντολή Git που χρησιμοποιείται για την ενημέρωση της τοπικής έκδοσης ενός αποθετηρίου από ένα τηλεχειριστήριο.
Είναι μια από τις τέσσερις εντολές που προτρέπει την αλληλεπίδραση δικτύου από το Git. Από προεπιλογή, git pull
κάνει δύο πράγματα.
- Ενημερώνει τον τρέχοντα τοπικό κλάδο εργασίας (αυτήν τη στιγμή έχει ελεγχθεί το κατάστημα)
- Ενημερώνει τους κλάδους απομακρυσμένης παρακολούθησης για όλους τους άλλους κλάδους.
git pull
παίρνει ( git fetch
) τις νέες δεσμεύσεις και συγχωνεύει ( git merge
) αυτές στον τοπικό κλάδο σας.
Η σύνταξη αυτής της εντολής έχει ως εξής:
# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME
στο οποίο:
- OPTIONS είναι οι επιλογές εντολών, όπως
--quiet
ή--verbose
. Μπορείτε να διαβάσετε περισσότερα σχετικά με τις διαφορετικές επιλογές στην τεκμηρίωση Git - ΑΠΟΘΗΚΕΥΣΗ είναι η διεύθυνση URL του repo σας. Παράδειγμα: //github.com/freeCodeCamp/freeCodeCamp.git
- Το REFSPEC καθορίζει ποια αναφορά πρέπει να ληφθεί και ποια τοπικά στοιχεία αναφοράς θα ενημερωθούν
- REMOTE-NAME είναι το όνομα του απομακρυσμένου αποθετηρίου σας. Για παράδειγμα: προέλευση .
- BRANCH-NAME είναι το όνομα του υποκαταστήματός σας. Για παράδειγμα: ανάπτυξη .
Σημείωση
Εάν έχετε ασυμβίβαστες αλλαγές, το τμήμα συγχώνευσης της git pull
εντολής θα αποτύχει και το τοπικό υποκατάστημα σας θα παραμείνει ανέγγιχτο.
Επομένως, πρέπει πάντα να πραγματοποιείτε τις αλλαγές σας σε έναν κλάδο προτού τραβήξετε νέες δεσμεύσεις από ένα απομακρυσμένο αποθετήριο.
Πίνακας περιεχομένων
- Χρησιμοποιώντας
git pull
- Κατανεμημένος έλεγχος έκδοσης
git fetch
+git merge
git pull
σε IDE
Χρησιμοποιώντας το git pull
Χρησιμοποιήστε το git pull
για να ενημερώσετε ένα τοπικό αποθετήριο από το αντίστοιχο απομακρυσμένο αποθετήριο. Π.χ .: Ενώ εργάζεστε τοπικά master
, εκτελέστε git pull
για να ενημερώσετε το τοπικό αντίγραφο master
και να ενημερώσετε τους άλλους κλάδους απομακρυσμένης παρακολούθησης. (Περισσότερες πληροφορίες για απομακρυσμένους κλάδους παρακολούθησης στην επόμενη ενότητα.)
Ωστόσο, υπάρχουν μερικά πράγματα που πρέπει να θυμάστε για να είναι αληθινό αυτό το παράδειγμα:
Το τοπικό αποθετήριο έχει ένα συνδεδεμένο απομακρυσμένο αποθετήριο
- Ελέγξτε αυτό εκτελώντας
git remote -v
- Εάν υπάρχουν πολλά τηλεχειριστήρια,
git pull
ενδέχεται να μην είναι αρκετές πληροφορίες. Ίσως χρειαστεί να εισαγάγετεgit pull origin
ήgit pull upstream
.
Το υποκατάστημα στο οποίο έχετε κάνει check out έχει έναν αντίστοιχο κλάδο απομακρυσμένης παρακολούθησης
- Ελέγξτε αυτό εκτελώντας
git status
. Αν δεν υπάρχει απομακρυσμένο υποκατάστημα παρακολούθησης, Git δεν ξέρω από πού να τραβήξει τις πληροφορίες από .
Κατανεμημένος έλεγχος έκδοσης
Το Git είναι ένα σύστημα ελέγχου κατανεμημένης έκδοσης (DVCS). Με το DVCS, οι προγραμματιστές μπορούν να εργάζονται στο ίδιο αρχείο ταυτόχρονα σε ξεχωριστά περιβάλλοντα. Αφού ωθήσει τον κώδικα στο κοινόχρηστο απομακρυσμένο αποθετήριο, άλλοι προγραμματιστές μπορούν να τραβήξουν τον αλλαγμένο κώδικα.
Αλληλεπιδράσεις δικτύου στο Git
Υπάρχουν μόνο τέσσερις εντολές που προκαλούν αλληλεπιδράσεις δικτύου στο Git. Ένα τοπικό αποθετήριο δεν έχει επίγνωση των αλλαγών που έγιναν στο απομακρυσμένο αποθετήριο έως ότου υπάρξει αίτημα για πληροφορίες. Και, ένα απομακρυσμένο αποθετήριο δεν έχει επίγνωση των τοπικών αλλαγών έως ότου προωθηθούν οι δεσμεύσεις.
Οι τέσσερις εντολές δικτύου είναι:
git clone
git fetch
git pull
git push
Υποκαταστήματα σε DVCS
Όταν δουλεύετε με το Git, φαίνεται ότι υπάρχουν πολλά αντίγραφα του ίδιου κώδικα που επιπλέουν παντού. Υπάρχουν διαφορετικές εκδόσεις του ίδιου αρχείου σε κάθε κλάδο. Και, διαφορετικά αντίγραφα των ίδιων κλάδων στον υπολογιστή κάθε προγραμματιστή και στο τηλεχειριστήριο. Για να παρακολουθεί αυτό, το Git χρησιμοποιεί κάτι που ονομάζεται απομακρυσμένη παρακολούθηση κλάδων .
Εάν εκτελέσετε git branch --all
μέσα σε ένα αποθετήριο Git, οι απομακρυσμένοι κλάδοι παρακολούθησης εμφανίζονται με κόκκινο χρώμα. Αυτά είναι μόνο αντίγραφα του κώδικα όπως εμφανίζεται στο τηλεχειριστήριο. (Πότε ήταν η τελευταία αλληλεπίδραση δικτύου που θα είχε φέρει πληροφορίες τοπικά; Θυμηθείτε πότε ενημερώθηκαν για τελευταία φορά αυτές οι πληροφορίες. Οι πληροφορίες στους κλάδους απομακρυσμένης παρακολούθησης αντικατοπτρίζουν τις πληροφορίες από αυτήν την αλληλεπίδραση.)
Με απομακρυσμένους κλάδους παρακολούθησης , μπορείτε να εργαστείτε στο Git σε πολλούς κλάδους χωρίς αλληλεπίδραση δικτύου. Κάθε φορά που εκτελείτε git pull
ή κάνετε git fetch
εντολές, ενημερώνετε κλάδους απομακρυσμένης παρακολούθησης .
git fetch συν git merge
git pull
είναι μια εντολή συνδυασμού, ίση με git fetch
+ git merge
.
σκατά
Από μόνη της, git fetch
ενημερώνει όλους τους κλάδους απομακρυσμένης παρακολούθησης στο τοπικό αποθετήριο. Καμία αλλαγή δεν αντικατοπτρίζεται πραγματικά σε κανένα από τα τοπικά υποκαταστήματα εργασίας.
συγχώνευση
Χωρίς ορίσματα, git merge
θα συγχωνεύσει τον αντίστοιχο κλάδο απομακρυσμένης παρακολούθησης με τον τοπικό κλάδο εργασίας.
τράβηγμα
git fetch
ενημερώνει απομακρυσμένους κλάδους παρακολούθησης. git merge
ενημερώνει τον τρέχοντα κλάδο με τον αντίστοιχο κλάδο απομακρυσμένης παρακολούθησης. Χρησιμοποιώντας git pull
, λαμβάνετε και τα δύο μέρη αυτών των ενημερώσεων. Όμως, αυτό σημαίνει ότι εάν κάνετε check out στο feature
υποκατάστημα και εκτελέσετε git pull
, κατά την ολοκλήρωση της αγοράς σας master
, δεν θα συμπεριληφθούν νέες ενημερώσεις. Κάθε φορά που κάνετε checkout σε άλλο υποκατάστημα που μπορεί να έχει νέες αλλαγές, είναι πάντα καλή ιδέα να εκτελέσετε git pull
.
git τραβήξτε IDE
Η κοινή γλώσσα σε άλλα IDES ενδέχεται να μην περιλαμβάνει τη λέξη pull
. Αν ψάχνετε για τις λέξεις git pull
αλλά δεν τις βλέπετε, αναζητήστε τη λέξη sync
.
ανάκτηση απομακρυσμένου PR (Pull Request) στο τοπικό repo
Για σκοπούς επανεξέτασης και τέτοια, τα PR σε απομακρυσμένη τοποθεσία θα πρέπει να μεταφερθούν στο τοπικό repo. Μπορείτε να χρησιμοποιήσετε την git fetch
εντολή ως εξής για να το επιτύχετε.
git fetch origin pull/ID/head:BRANCHNAME
Το αναγνωριστικό είναι το αναγνωριστικό αιτήματος έλξης και το BRANCHNAME είναι το όνομα του κλάδου που θέλετε να δημιουργήσετε. Μόλις δημιουργηθεί το υποκατάστημα, μπορείτε να χρησιμοποιήσετε git checkout
για να μεταβείτε σε αυτό το brach.
Άλλοι πόροι στο git στο guide.freecodecamp.org
- Συγχώνευση Git
- Git ολοκλήρωση αγοράς
- Git δεσμεύστε
- Σκατά
- Git υποκατάστημα