Το Git Pull εξήγησε

git pull είναι μια εντολή Git που χρησιμοποιείται για την ενημέρωση της τοπικής έκδοσης ενός αποθετηρίου από ένα τηλεχειριστήριο.

Είναι μια από τις τέσσερις εντολές που προτρέπει την αλληλεπίδραση δικτύου από το Git. Από προεπιλογή, git pullκάνει δύο πράγματα.

  1. Ενημερώνει τον τρέχοντα τοπικό κλάδο εργασίας (αυτήν τη στιγμή έχει ελεγχθεί το κατάστημα)
  2. Ενημερώνει τους κλάδους απομακρυσμένης παρακολούθησης για όλους τους άλλους κλάδους.

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 υποκατάστημα