Συγχώνεται
Git: Τι ακριβώς κάνει το Git Pull
Git pull vs fetch
Πιθανότατα στην ακόλουθη κατάσταση: πραγματοποιήθηκαν πρόσφατα αλλαγές στο απομακρυσμένο αποθετήριο σας και θέλετε να τις ενσωματώσετε στο τοπικό σας αντίγραφο. Έχετε μερικές επιλογές εδώ. Οι δύο πιο συνηθισμένες ενέργειες για να λάβετε αλλαγές από το απομακρυσμένο σας είναι το Git Pull και το Git Fetch.
Λοιπόν, ποια είναι η διαφορά μεταξύ του Git Pull Vs Fetch, και πότε πρέπει να χρησιμοποιήσετε ποια εντολή? Είμαστε ευτυχείς που ρωτήσατε.
Τι είναι το git fetch?
Το Git Fetch είναι μια εντολή που σας επιτρέπει να κατεβάσετε αντικείμενα από άλλο αποθετήριο.
Τι είναι το Git Pull?
Το Git Pull είναι μια εντολή που σας επιτρέπει να μεταφέρετε και να ενσωματώνετε με άλλο αποθετήριο ή τοπικό υποκατάστημα.
Από αυτόν τον ορισμό, μπορείτε να δείτε ότι ένα τράβηγμα Git είναι στην πραγματικότητα ένα git fetch ακολουθούμενο από μια πρόσθετη ενέργεια – – τυπικά ένα git συγχώνευση.
Πότε πρέπει να χρησιμοποιήσετε το git pull?
Το Git Pull είναι μια επιθυμητή δράση όταν έχετε πλήρες πλαίσιο σχετικά με τις αλλαγές που θα πάρετε από το απομακρυσμένο αποθετήριο σας και προσθέστε στο τοπικό σας αντίγραφο.
Πότε πρέπει να χρησιμοποιήσετε το git fetch?
Εάν θέλετε μόνο να δείτε όλους τους τρέχοντες κλάδους και τις αλλαγές στο απομακρυσμένο αποθετήριο σας, το Git Fetch μπορεί να σας πάρει όλες τις πληροφορίες που χρειάζεστε χωρίς να κάνετε πραγματικά τοπικές αλλαγές στην εργασία σας.
Αυτό σας δίνει χρόνο να αποφασίσετε για την καλύτερη πορεία δράσης για την ενσωμάτωση των αλλαγών σας, όπως η συγχώνευσή τους ή η γρήγορη προώθηση του τοπικού σας υποκαταστήματος.
Συγκρίνοντας το git pull vs fetch
Κατά τη σύγκριση του Git Pull Vs Fetch, το Git Fetch είναι μια ασφαλέστερη εναλλακτική λύση επειδή τραβάει όλες τις δεσμεύσεις από το τηλεχειριστήριο σας, αλλά δεν κάνει αλλαγές στα τοπικά αρχεία σας.
Από την άλλη πλευρά, το Git Pull είναι ταχύτερο καθώς εκτελείτε πολλαπλές ενέργειες σε ένα – ένα καλύτερο κτύπημα για το buck σας. Η χρήση της εντολής Git Pull μπορεί να δει σε ένα φως ως χαρακτηριστικό της ευκολίας. Πιθανότατα να ανησυχείτε για την εισαγωγή συγκρούσεων στο τοπικό σας repo και απλά θέλετε τις πιο ενημερωμένες αλλαγές από το απομακρυσμένο υποκατάστημα από τον οποίο τραβάτε.
Το Git Pull είναι μια πιο προηγμένη δράση και είναι σημαντικό να καταλάβετε ότι θα εισαγάγετε αλλαγές και θα τις εφαρμόσετε αμέσως στον τρέχοντα κλάδο σας.
Το Git Fetch είναι λίγο διαφορετικό. Μπορείτε να χρησιμοποιήσετε την εντολή git fetch για να δείτε όλες τις αλλαγές του τηλεχειριστηρίου χωρίς να τις εφαρμόσετε. Αυτή η ενέργεια μπορεί να είναι μεγάλη αν είστε νεότεροι στο GIT, καθώς παρέχει μεγαλύτερη ορατότητα για τις αλλαγές που εισάγονται. Από την άλλη πλευρά, η Fetch μπορεί επίσης να προτιμά.
Τώρα που έχουμε περάσει από αυτό που κάνουν οι αντίστοιχες εντολές και συγκρίναμε το Git Pull Vs Fetch, ας μάθουμε πώς μπορείτε να τραβήξετε και να μεταφέρετε το gitkraken GUI GUI για να απεικονίσετε το αποθετήριο σας και πώς να εκτελέσετε αυτές τις ενέργειες στο CLI.
Το Gitkraken σάς επιτρέπει να δείτε όλες τις λεπτομέρειες των αλλαγών που τραβάτε ή παίρνετε από το απομακρυσμένο αποθετήριο σας.
Πώς μπορείτε να τραβήξετε το git vs fetch χρησιμοποιώντας το gitkraken?
Στο Gitkraken, μπορείτε εύκολα να φτάσετε ή να τραβήξετε από την κορυφαία γραμμή εργαλείων.
![Gitkraken fetch] (https: // www.γελοιογραφία.COM/WP-Content/Uploads/2021/04/Gitkraken-Fetch-1.PNG)
Εναλλακτικά, μπορείτε να κάνετε δεξί κλικ σε ένα απομακρυσμένο κλάδο από το κεντρικό γράφημα στο Gitkraken για να φτάσετε ή να τραβήξετε.
![Gitkraken Pull] (https: // www.γελοιογραφία.com/wp-content/uploads/2021/05/gitkraken-pull.PNG)
Gittip: Χρειάζεστε μια ανανέωση για το πώς να τραβήξετε ένα απομακρυσμένο κλάδο Git? Σας έχουμε καλύψει.
Αλλά αν είστε σαν πολλοί προγραμματιστές εκεί έξω και προτιμάτε να κολλήσετε στο πληκτρολόγιο, το Gitkraken σας έχει καλύψει με τον εξαιρετικά βολικό ασαφές ανιχνευτή, το οποίο μπορείτε να ανοίξετε με τη συντόμευση πληκτρολογίου CMD/CTRL + P.
Μετά το άνοιγμα του ασαφούς ανιχνευτή, μπορείτε απλά να πληκτρολογήσετε το Fetch για να ξεκινήσετε ένα git fetch ή να τραβήξετε για να ξεκινήσετε ένα git pull.
![Gitkraken Fetch Fuzzy Finder] (https: // www.γελοιογραφία.COM/WP-Content/Uploads/2021/04/Gitkraken-Fetch-Fuzzy-Finder-1.PNG)
![Gitkraken Pull Fuzzy Finder] (https: // www.γελοιογραφία.COM/WP-Content/Uploads/2021/04/Gitkraken-Pull-Fuzzy-Finder-1.PNG)
Η αυτόματη λειτουργία αλλάζει με το gitkraken
Το Gitkraken περιλαμβάνει ένα βολικό χαρακτηριστικό που σας επιτρέπει να μεταφέρετε αυτόματα τις αλλαγές από ένα απομακρυσμένο αποθετήριο που βασίζεται σε ένα διάστημα που ορίζετε. Μπορείτε να ρυθμίσετε το διάστημα σε κάθε λεπτό, κάθε ώρα ή ένα αποφασισμένο λεπτό μεταξύ 0 και 60.
Αυτό μπορεί να είναι εξαιρετικά χρήσιμο για τη διατήρηση του τοπικού σας αντιγράφου με το τηλεχειριστήριο σας και μπορεί να είναι ιδιαίτερα επωφελής όταν έχετε πολλά πράγματα με πολλαπλά αποθετήρια και έργα.
Κρατήστε το τοπικό σας αντίγραφο ενημερωμένο με αλλαγές από το απομακρυσμένο σας και εξοικονομήστε χρόνο με αυτόματη fetch στο Gitkraken.
Πώς μπορείτε να φτάσετε στη γραμμή εντολών?
Εάν χρησιμοποιείτε το τερματικό, θα χρησιμοποιήσετε την εντολή git fetch για να μεταφέρετε αλλαγές από τους απομακρυσμένους κλάδους σας.
φώτα
Πώς μπορείτε να τραβήξετε τη γραμμή εντολών?
Ομοίως, θα χρησιμοποιήσετε την εντολή pull git για να τραβήξετε αλλαγές από το τηλεχειριστήριο σας.
τραβήγμα
Αυτό θα ενημερώσει το τρέχον υποκατάστημα σας με αλλαγές από το τηλεχειριστήριο σας.
Το τράβηγμα και η ανάληψη των αλλαγών σας είναι μόνο ένα κλικ στο Gitkraken, ψήφισε τον πιο δημοφιλή πελάτη Git για τέσσερα χρόνια στη σειρά. Κάντε μια περιστροφή δωρεάν σήμερα. Δεν θα το μετανιώσετε.
Git: Τι ακριβώς κάνει το “git pull”?
Εάν έχετε τοπικές αλλαγές (μη-άδειες δεσμεύσεις) που δεν έχετε ωθήσει ακόμα, τότε το τοπικό σας δέντρο δεν είναι πανομοιότυπο με το απομακρυσμένο. Εκτός αυτού, το “git pull” μπορεί να είναι “git fetch” συν “git rebase”. Αλλά το “git rebase” μπορεί να θεωρηθεί ως ειδική “συγχώνευση git”.
17 Ιουλίου 2017 στις 7:19
Ζητάτε 5 ερωτήσεις με βάση το παραπάνω κείμενο, εδώ είναι οι λεπτομερείς απαντήσεις:
1. Ποια είναι η διαφορά μεταξύ του Git Pull και του Git Fetch?
Η κύρια διαφορά μεταξύ του Git Pull και του Git Fetch είναι ότι το Git Pull όχι μόνο φέρνει τις αλλαγές από το απομακρυσμένο αποθετήριο αλλά και τις ενσωματώνει στο τοπικό σας υποκατάστημα. Από την άλλη πλευρά, το Git Fetch κατεβάζει μόνο τις αλλαγές από το απομακρυσμένο αποθετήριο χωρίς να τις εφαρμόσει στο τοπικό σας υποκατάστημα.
2. Πότε πρέπει να χρησιμοποιήσετε το git pull?
Το Git Pull συνιστάται όταν έχετε πλήρη γνώση των αλλαγών που έγιναν στο απομακρυσμένο αποθετήριο και θέλετε να τις εφαρμόσετε αμέσως στο τοπικό σας υποκατάστημα. Αυτό είναι χρήσιμο όταν θέλετε να ενσωματώσετε γρήγορα τις τελευταίες αλλαγές στην εργασία σας.
3. Πότε πρέπει να χρησιμοποιήσετε το git fetch?
Το Git Fetch είναι χρήσιμο όταν θέλετε να δείτε τις αλλαγές που έγιναν στο απομακρυσμένο αποθετήριο χωρίς να κάνετε τοπικές αλλαγές. Σας επιτρέπει να ελέγξετε τις αλλαγές και να αποφασίσετε για την καλύτερη προσέγγιση για την ενσωμάτωσή τους στην εργασία σας, όπως η συγχώνευση ή η γρήγορη προώθηση του τοπικού σας υποκαταστήματος.
4. Ποια εντολή είναι ασφαλέστερη, git pull ή git fetch?
Το Git Fetch θεωρείται ασφαλέστερο επειδή κατεβάζει μόνο τις αλλαγές από το απομακρυσμένο αποθετήριο χωρίς να τροποποιήσει τα τοπικά αρχεία σας. Από την άλλη πλευρά, το Git Pull εφαρμόζει τις αλλαγές αμέσως στο υποκατάστημα σας, το οποίο μπορεί να εισαγάγει συγκρούσεις εάν δεν αντιμετωπιστεί σωστά.
5. Γιατί το git τραβήξει γρηγορότερα από το git fetch?
Το Git Pull είναι ταχύτερο επειδή συνδυάζει πολλαπλές ενέργειες σε ένα. Λέει τις αλλαγές από το απομακρυσμένο αποθετήριο και τις ενσωματώνει στο τοπικό σας υποκατάστημα σε μία μόνο εντολή. Αυτό μπορεί να είναι βολικό εάν ανησυχείτε λιγότερο για τις συγκρούσεις και απλά θέλετε τις πιο ενημερωμένες αλλαγές από τον απομακρυσμένο κλάδο.
Git: Τι ακριβώς κάνει το Git Pull
Gittip: Χρειάζεστε μια ανανέωση για το πώς να τραβήξετε ένα απομακρυσμένο κλάδο Git? Εμείς’σε έκανα κάλυψη.
Git pull vs fetch
Εσείς’Πιθανότατα στην ακόλουθη κατάσταση: πραγματοποιήθηκαν πρόσφατα αλλαγές στο απομακρυσμένο αποθετήριο σας και θέλετε να τις ενσωματώσετε στο τοπικό σας αντίγραφο. Έχετε μερικές επιλογές εδώ. Οι δύο πιο συνηθισμένες ενέργειες για να λάβετε αλλαγές από το απομακρυσμένο σας είναι το Git Pull και το Git Fetch.
Και λοιπόν’είναι η διαφορά μεταξύ του git pull vs fetch, και πότε πρέπει να χρησιμοποιήσετε ποια εντολή? Εμείς’Χαίρομαι που ρωτήσατε.
Τι είναι το git fetch?
Το Git Fetch είναι μια εντολή που σας επιτρέπει να κατεβάσετε αντικείμενα από άλλο αποθετήριο.
Τι είναι το Git Pull?
Το Git Pull είναι μια εντολή που σας επιτρέπει να μεταφέρετε και να ενσωματώνετε με άλλο αποθετήριο ή τοπικό υποκατάστημα.
Από αυτόν τον ορισμό, μπορείτε να δείτε ότι ένα τράβηγμα Git είναι στην πραγματικότητα ένα git fetch ακολουθούμενο από μια πρόσθετη ενέργεια – – τυπικά ένα git συγχώνευση.
Πότε πρέπει να χρησιμοποιήσετε το git pull?
Το Git Pull είναι μια επιθυμητή δράση όταν έχετε πλήρες πλαίσιο σχετικά με τις αλλαγές που θα πάρετε από το απομακρυσμένο αποθετήριο σας και προσθέστε στο τοπικό σας αντίγραφο.
Πότε πρέπει να χρησιμοποιήσετε το git fetch?
Εάν θέλετε μόνο να δείτε όλους τους τρέχοντες κλάδους και τις αλλαγές στο απομακρυσμένο αποθετήριο σας, το Git Fetch μπορεί να σας πάρει όλες τις πληροφορίες που χρειάζεστε χωρίς να κάνετε πραγματικά τοπικές αλλαγές στην εργασία σας.
Αυτό σας δίνει χρόνο να αποφασίσετε για την καλύτερη πορεία δράσης για την ενσωμάτωση των αλλαγών σας, όπως η συγχώνευσή τους ή η γρήγορη προώθηση του τοπικού σας υποκαταστήματος.
Συγκρίνοντας το git pull vs fetch
Κατά τη σύγκριση του Git Pull Vs Fetch, το Git Fetch είναι μια ασφαλέστερη εναλλακτική λύση επειδή τραβάει όλες τις δεσμεύσεις από το τηλεχειριστήριο σας αλλά δεν’να κάνουμε οποιεσδήποτε αλλαγές στα τοπικά αρχεία σας.
Από την άλλη πλευρά, το Git Pull είναι ταχύτερο όπως εσείς’να εκτελείτε πολλαπλές ενέργειες σε ένα – ένα καλύτερο κτύπημα για το buck σας. Η χρήση της εντολής Git Pull μπορεί να δει σε ένα φως ως χαρακτηριστικό της ευκολίας. εσείς’Πιθανότατα να ανησυχείτε για την εισαγωγή συγκρούσεων στο τοπικό σας repo και απλά θέλετε τις πιο ενημερωμένες αλλαγές από το απομακρυσμένο υποκατάστημα σας’τραβώντας από.
Το Git Pull είναι μια πιο προηγμένη δράση και αυτό’Είναι σημαντικό να καταλάβετε ότι θα εισαγάγετε αλλαγές και θα τις εφαρμόσετε αμέσως στον τρέχοντα κλάδο σας.
Το Git Fetch είναι λίγο διαφορετικό. Μπορείτε να χρησιμοποιήσετε την εντολή git fetch για να δείτε όλα τα τηλεχειριστήρια’S Αλλαγές χωρίς να τις εφαρμόσετε. Αυτή η ενέργεια μπορεί να είναι μεγάλη αν εσείς’είναι νεότερο στο Git, καθώς παρέχει μεγαλύτερη ορατότητα σχετικά με τις αλλαγές που εισάγονται. Από την άλλη πλευρά, η Fetch μπορεί επίσης να προτιμά’συμβαίνουν στο repo τους.
Τώρα που εμείς’Έφυγε από ό, τι κάνουν οι αντίστοιχες εντολές και έχουν συγκρίνει το git pull vs fetch, ας’S Μάθετε πώς μπορείτε να τραβήξετε και να μεταφέρετε το Git Pull χρησιμοποιώντας το cross-platform gitkraken git gui για να απεικονίσετε το αποθετήριο σας και πώς να εκτελέσετε αυτές τις ενέργειες στο CLI.
Το Gitkraken σάς επιτρέπει να δείτε όλες τις λεπτομέρειες των αλλαγών που εσείς’τραβώντας ή ληφθείτε από το απομακρυσμένο αποθετήριο σας.
Πώς μπορείτε να τραβήξετε το git vs fetch χρησιμοποιώντας το gitkraken?
Στο Gitkraken, μπορείτε εύκολα να φτάσετε ή να τραβήξετε από την κορυφαία γραμμή εργαλείων.

Εναλλακτικά, μπορείτε να κάνετε δεξί κλικ σε ένα απομακρυσμένο κλάδο από το κεντρικό γράφημα στο Gitkraken για να φτάσετε ή να τραβήξετε.

Gittip: Χρειάζεστε μια ανανέωση για το πώς να τραβήξετε ένα απομακρυσμένο κλάδο Git? Εμείς’σε έκανα κάλυψη.
Αλλά αν εσύ’Είναι σαν πολλοί προγραμματιστές εκεί έξω και προτιμούν να κολλήσουν στο πληκτρολόγιο, το Gitkraken σας έχει καλύψει με τον εξαιρετικά βολικό ασαφές ανιχνευτή, το οποίο μπορείτε να ανοίξετε με τη συντόμευση πληκτρολογίου CMD/CTRL + P .
Μετά το άνοιγμα του ασαφούς ανιχνευτή, μπορείτε απλά να πληκτρολογήσετε το Fetch για να ξεκινήσετε ένα git fetch ή να τραβήξετε για να ξεκινήσετε ένα git pull.


Η αυτόματη λειτουργία αλλάζει με το gitkraken
Το Gitkraken περιλαμβάνει ένα βολικό χαρακτηριστικό που σας επιτρέπει να μεταφέρετε αυτόματα τις αλλαγές από ένα απομακρυσμένο αποθετήριο που βασίζεται σε ένα διάστημα που ορίζετε. Μπορείτε να ρυθμίσετε το διάστημα σε κάθε λεπτό, κάθε ώρα ή ένα αποφασισμένο λεπτό μεταξύ 0 και 60.
Αυτό μπορεί να είναι εξαιρετικά χρήσιμο για τη διατήρηση του τοπικού σας αντιγράφου με το τηλεχειριστήριο σας και μπορεί να είναι ιδιαίτερα επωφελής όταν έχετε πολλά πράγματα με πολλαπλά αποθετήρια και έργα.
Κρατήστε το τοπικό σας αντίγραφο ενημερωμένο με αλλαγές από το απομακρυσμένο σας και εξοικονομήστε χρόνο με αυτόματη fetch στο Gitkraken.
Πώς μπορείτε να φτάσετε στη γραμμή εντολών?
Αν εσύ’Χρησιμοποιώντας το τερματικό, θα χρησιμοποιήσετε την εντολή git fetch για να πραγματοποιήσετε αλλαγές από τα απομακρυσμένα κλαδιά σας.
φώτα
Πώς μπορείτε να τραβήξετε τη γραμμή εντολών?
Ομοίως, θα χρησιμοποιήσετε την εντολή pull git για να τραβήξετε αλλαγές από το τηλεχειριστήριο σας.
τραβήγμα
Αυτό θα ενημερώσει το τρέχον υποκατάστημα σας με αλλαγές από το τηλεχειριστήριο σας.
Το τράβηγμα και η ανάληψη των αλλαγών σας είναι μόνο ένα κλικ στο Gitkraken, ψήφισε τον πιο δημοφιλή πελάτη Git για τέσσερα χρόνια στη σειρά. Κάντε μια περιστροφή δωρεάν σήμερα. κέρδισες’Δεν το μετανιώσω.
Git: Τι ακριβώς κάνει το “git pull”?
Εάν έχετε τοπικές αλλαγές (μη-άδειες δεσμεύσεις) που δεν έχετε ωθήσει ακόμα, τότε το τοπικό σας δέντρο δεν είναι πανομοιότυπο με το απομακρυσμένο. Εκτός αυτού, το “git pull” μπορεί να είναι “git fetch” συν “git rebase”. Αλλά το “git rebase” μπορεί να θεωρηθεί ως ειδική “συγχώνευση git”.
17 Ιουλίου 2017 στις 7:19
Ζητάτε 5 ερωτήσεις εδώ 🙂
17 Ιουλίου 2017 στις 7:24
Ελπίζω τουλάχιστον ότι είναι καλοί.
17 Ιουλίου 2017 στις 7:43
4 απαντήσεις 4
ο ακριβώς Το μέρος είναι πραγματικά πολύ δύσκολο. Συχνά λέγεται – και είναι ως επί το πλείστον αλήθεια – ότι το git pull τρέχει git fetch ακολουθούμενο είτε από το git συγχώνευση είτε το git rebase, και στην πραγματικότητα, το git pull, το οποίο ήταν ένα σενάριο κελύφους και τώρα είναι ένα πρόγραμμα C, κυριολεκτικά έτρεξε πρώτα το git fetch .
Το επόμενο βήμα, ωστόσο, είναι αρκετά δύσκολο. Επίσης, σε ένα σχόλιο, προσθέσατε αυτό:
[fetch] φέρνει αλλαγές από το απομακρυσμένο repo. Πού τα βάζει?
Για να το καταλάβετε σωστά, πρέπει να κατανοήσετε το σύστημα αντικειμένων του Git.
Το μοντέλο αντικειμένου GIT και το Git Fetch
Κάθε δέσμευση είναι ένα είδος αυτόνομης οντότητας. Κάθε δέσμευση έχει ένα μοναδικό αναγνωριστικό κατακερματισμού: B06D364. ή οτιδήποτε. Αυτό το αναγνωριστικό hash είναι ένα κρυπτογραφικό έλεγχο του περιεχομένου αυτής της δέσμευσης. Σκεφτείτε, για παράδειγμα:
$ git cat -file -p head | SED 'S/@//g' δέντρο A15B54EB544033F8C1AD04DD0A5278A59CC36CC9 PARED 951EA7656EBB3F30E6C5E941E625A1318AC58298 JUNIO CHAMANO 1494339962 +0900 COMMITE 0900 Git 2.13 υπογεγραμμένο: Junio C Hamano
Εάν τροφοδοτήσετε αυτά τα περιεχόμενα (μείον το μέρος ‘s/@///’, αλλά με την κεφαλίδα που προσθέτει το git σε κάθε αντικείμενο) σε έναν αριθμομηχανή SHA-1 checksum, θα πάρετε το αναγνωριστικό hash. Αυτό σημαίνει ότι Ολοι που έχει αυτή τη δέσμευση έχει το ίδιο hash id για αυτό.
Μπορείτε να πάρετε το αποθετήριο Git για το Git και να εκτελέσετε το Git Cat -File -P V2.13.0^ για να δείτε τα ίδια δεδομένα. Σημείωση: Η ετικέτα v2.13.0 μεταφράζεται στο 074FFB61B4B507B3BDE7DCF6006E560A0430860, το οποίο είναι ένα αντικείμενο ετικέτας. Το ίδιο το αντικείμενο ετικέτας αναφέρεται στη δέσμευση B06D364. :
$ git cat -file -p v2.13.0 Αντικείμενο B06D3643105C8758ED019125A4399CB7EFDCCE2C Τύπος Tag V2.13.0 [snip] Για να συνεργαστεί με μια δέσμευση, το GIT πρέπει να αποθηκεύσει το αντικείμενο Commit – το στοιχείο με το hash id b06d364. – Κάπου κάπου, καθώς και το αντικείμενο του δέντρου και τα πρόσθετα αντικείμενα που χρειάζεται το δέντρο. Αυτά είναι τα αντικείμενα που βλέπετε μετρώντας και συμπιέζει κατά τη διάρκεια ενός git fetch ή git push .
Η γονική γραμμή λέει ποια δεσμεύει (ή, για συγχώνευση, δεσμεύσεις, πληθυντικός) είναι οι προκατόχοι αυτής της συγκεκριμένης δέσμευσης. Για να έχετε ένα πλήρες σύνολο δεσμεύσεων, το git πρέπει επίσης Έχετε το γονικό δεσμευμένο (ένας κλώνος -ο κλώνος μπορεί σκόπιμα να παραλείψει διάφορους γονείς, των οποίων τα αναγνωριστικά καταγράφονται σε ένα ειδικό αρχείο “ρηχών μοσχευμάτων”, αλλά ένας κανονικός κλώνος θα έχει πάντα τα πάντα).
Υπάρχουν τέσσερις τύποι αντικειμένων συνολικά: δεσμεύσεις, (σχολιασμένες) ετικέτες, δέντρα και τι καλεί το git άμορφη μάζα αντικείμενα. Τα Blobs αποθηκεύουν κυρίως τα πραγματικά αρχεία. Όλα αυτά τα αντικείμενα βρίσκονται στο Git’s αντικειμενική βάση δεδομένων. Το Git μπορεί στη συνέχεια να τα ανακτήσει εύκολα με το hash id: git cat-file -p, για παράδειγμα, τα εμφανίζει σε μια αόριστα ανθρώπινη αναγνώσιμη μορφή. (Τις περισσότερες φορές υπάρχουν λίγα που πρέπει να γίνουν εκτός από την απο-συμπίεση, αν και τα αντικείμενα δέντρων έχουν δυαδικά δεδομένα που πρέπει να μορφοποιηθούν πρώτα.·
Όταν τρέχετε το git fetch – ή έχετε το git pull τρέξτε το για εσάς – το git σας αποκτά τα αναγνωριστικά κατακερματισμού ορισμένων αρχικών αντικειμένων από ένα άλλο git, στη συνέχεια χρησιμοποιεί τα πρωτόκολλα μεταφοράς GIT για να καταλάβετε ποια πρόσθετα αντικείμενα απαιτούνται για να ολοκληρώσετε το χώρο αποθήκευσης GIT σας. Αν εσύ έχω ήδη Κάποιο αντικείμενο, δεν χρειάζεται να το φτιάξετε ξανά, και αν αυτό το αντικείμενο είναι αντικείμενο δέσμευσης, δεν χρειάζεστε ούτε τους γονείς του. 1 Έτσι παίρνετε μόνο τις δεσμεύσεις (και τα δέντρα και τα blobs) που δεν έχετε ήδη. Το git σας στη συνέχεια τα γεμίζει στη βάση δεδομένων αντικειμένων του αποθετηρίου σας.
Μόλις τα αντικείμενα αποθηκευτούν με ασφάλεια, το git καταγράφει τα αναγνωριστικά κατακερματισμού στο ειδικό αρχείο fetch_head. Εάν το git σας είναι τουλάχιστον 1.8.4, θα το κάνει επίσης Ενημερώστε τυχόν αντίστοιχα Ονόματα υποκαταστημάτων απομακρυσμένης παρακολούθησης Αυτή τη στιγμή: Ε.σολ., Μπορεί να ενημερώσει την προέλευση/κύριο σας .
(Εάν εκτελείτε χειροκίνητα το Git Fetch, το git σας υπακούει σε όλους τους κανονικούς κανόνες ενημέρωσης refspec, όπως περιγράφεται στην τεκμηρίωση Git Fetch. Είναι τα πρόσθετα επιχειρήματα που διαβιβάστηκαν στο Git Fetch από το Git Pull που αναστέλλουν μερικά από αυτά, ανάλογα με την έκδοση GIT σας.·
Αυτό, λοιπόν, είναι η απάντηση σε αυτό που νομίζω ότι είναι η πραγματική σας πρώτη ερώτηση: το Git Fetch αποθηκεύει αυτά τα αντικείμενα στη βάση δεδομένων αντικειμένων του Git, όπου μπορούν να ανακτηθούν από τα αναγνωριστικά κατακερματισμού τους. Προσθέτει τα αναγνωριστικά κατακερματισμού .Git/Fetch_head (πάντα), και συχνά ενημερώνει επίσης μερικές από τις αναφορές σας-τα ονόματα των αναφορών/ετικετών/, και των ονόματα υποκαταστημάτων απομακρυσμένης παρακολούθησης σε αναφορές/απομακρυσμένες/remotes/ .
1 Εκτός, δηλαδή, να “unshallow” ένας ρηχός κλώνος.
Το υπόλοιπο τραβήγματος
Το τρέξιμο git fetch σας παίρνει αντικείμενα, αλλά δεν κάνει τίποτα για να ενσωματώσει αυτά τα αντικείμενα σε οποιοδήποτε από τα δικα σου δουλειά. Εάν το επιθυμείτε χρήση Οι δεσμευμένες δεσμεύσεις ή άλλα δεδομένα, χρειάζεστε ένα δεύτερο βήμα.
Οι δύο κύριες ενέργειες που μπορείτε να κάνετε εδώ είναι η συγχώνευση Git ή το Git Rebase . Ο καλύτερος τρόπος για να τα κατανοήσετε είναι να διαβάσετε γι ‘αυτά αλλού (άλλες δημοσιεύσεις, άλλα έγγραφα και ούτω καθεξής). Και οι δύο είναι, ωστόσο, περίπλοκες εντολές – και υπάρχει μια ειδική περίπτωση για το Git Pull που είναι δεν Καλύπτεται από αυτά τα δύο: Ειδικότερα, μπορείτε να τραβήξετε σε έναν ανύπαρκτο υποκατάστημα. Έχετε έναν ανύπαρκτο υποκατάστημα (το οποίο ο Git καλεί επίσης ένα ορφανός κλάδος ή ένα αγέννητο υποκατάστημα) Σε δύο περιπτώσεις:
- σε ένα νέο, άδειο αποθετήριο (που δεν έχει δεσμεύσεις), ή
- Μετά την εκτέλεση του Git Checkout -Orphan Newbranch
Και στις δύο περιπτώσεις, δεν υπάρχει Τρέχουσα δέσμευση Έτσι δεν υπάρχει τίποτα να αναζωογονηθεί ή να συγχωνευθεί. Ωστόσο, ο δείκτης ή/και το δέντρο εργασίας δεν είναι απαραιτήτως άδειοι! Είναι αρχικά άδειοι σε ένα νέο, άδειο αποθετήριο, αλλά από τη στιγμή που τρέχετε το git pull θα μπορούσατε να δημιουργήσετε αρχεία και να τα αντιγράψετε στο ευρετήριο.
Αυτό το είδος pull git είναι παραδοσιακά buggy, οπότε προσέξτε: εκδόσεις του git πριν από 1.Το 8-ish θα καταστρέψει μερικές φορές μη δεσμευμένη εργασία. Νομίζω ότι είναι καλύτερο να αποφύγετε το Git Pull εξ ολοκλήρου εδώ: Απλά τρέξτε το git fetch και, στη συνέχεια, υπολογίστε τι θέλετε να κάνετε. Εξ όσων γνωρίζω, είναι εντάξει στη σύγχρονη git-αυτές οι εκδόσεις δεν θα καταστρέψουν το ευρετήριο και το δέντρο εργασίας σας-αλλά έχω τη συνήθεια να αποφεύγω τον εαυτό μου να τραβήξει τον εαυτό μου.
Σε κάθε περίπτωση, ακόμη και αν δεν είστε σε ορφανό/αγέννητο/ανύπαρκτο υποκατάστημα, δεν είναι μια καλή ιδέα να προσπαθήσετε να τρέξετε το Git Merge με ένα βρώμικο δείκτη ή/και δέντρο εργασίας (“μη δεσμευμένη εργασία”). Η εντολή git rebase έχει τώρα μια επιλογή αυτόματης θέσης (rebase.autostash), έτσι ώστε να μπορείτε να έχετε αυτόματα να τρέξει το git stash save για να δημιουργήσετε κάποιες διακοσμητικές διαπραγματεύσεις από οποιαδήποτε τέτοια μη δεσμευμένη εργασία. Τότε η ίδια η rebase μπορεί να τρέξει, μετά την οποία το git μπορεί να εφαρμόσει αυτόματα και να ρίξει το stash.
Η εντολή MERGE GIT δεν διαθέτει αυτήν την αυτόματη επιλογή, αλλά φυσικά μπορείτε να το κάνετε χειροκίνητα.
Σημειώστε ότι κανένα από αυτά δεν λειτουργεί αν βρίσκεστε στη μέση ενός συγκρουόμενος συγχώνευση. Σε αυτή την κατάσταση, ο δείκτης έχει επιπλέον καταχωρήσεις: δεν μπορείτε να τα δεσμεύσετε μέχρι να επιλύσετε τις συγκρούσεις και δεν μπορείτε να τις αποχωρήσετε (που ακολουθεί φυσικά από το γεγονός ότι η Git Stash κάνει πραγματικά δεσμεύσεις). Εσείς μπορώ Εκτελέστε το git fetch, at όποιος Ώρα, αφού αυτό προσθέτει μόνο νέα αντικείμενα στη βάση δεδομένων αντικειμένων. Αλλά δεν μπορείτε να συγχωνεύσετε ή να αναζωογονήσετε όταν ο δείκτης βρίσκεται σε αυτήν την κατάσταση.
Git pull -rebase vs. –συγχώνευση
Αυτή η σελίδα εξηγεί εν συντομία τη διαφορά μεταξύ της επανεξέτασης και της συγχώνευσης στο GIT κατά το τράβηγμα. Και οι δύο τεχνικές χρησιμοποιούνται για να συνδυάσουν τις τοπικές σας μη δημοσιευμένες αλλαγές με τις δημοσιευμένες απομακρυσμένες αλλαγές. Υπάρχει ένα άλλο wikipage για το πώς να αναζωογονήσετε ή να συγχωνεύσετε ένα υποκατάστημα.
Εάν θέλετε να κατανοήσετε τις λεπτομέρειες της επανεξέτασης και της συγχώνευσης για αλλαγές και υποκαταστήματα, τότε ο Syou θα πρέπει να διαβάσει ένα blogpost από τον Mislav Marohnić και το κεφάλαιο για την επανεξέταση και τη συγχώνευση από το βιβλίο Pro Git.
ανάκριση
Εάν τραβήξετε απομακρυσμένες αλλαγές με τη σημαία -Rebase, τότε οι τοπικές σας αλλαγές επανεμφανίζονται στην κορυφή των απομακρυσμένων αλλαγών.
Git Pull -Rebase
συγχώνευση
Εάν τραβήξετε απομακρυσμένες αλλαγές με τη σημαία -merge, η οποία είναι επίσης η προεπιλογή, τότε οι τοπικές αλλαγές σας συγχωνεύονται με τις απομακρυσμένες αλλαγές. Αυτό έχει ως αποτέλεσμα μια δέσμευση συγχώνευσης που δείχνει την τελευταία τοπική δέσμευση και την τελευταία απομακρυσμένη δέσμευση.
git pull -merge
η καλύτερη εξάσκηση
Είναι η καλύτερη πρακτική Πάντα να αναβαθμίζετε τις τοπικές σας δεσμεύσεις Όταν τραβάτε πριν τους πιέσετε. Καθώς κανείς δεν γνωρίζει τις δεσμεύσεις σας ακόμα, κανείς δεν θα συγχέεται όταν επανατοποθετηθούν, αλλά η πρόσθετη δέσμευση μιας συγχώνευσης θα ήταν άσκοπα σύγχυση. Οι δημοσιευμένες δεσμεύσεις, ωστόσο, συνήθως συγχωνεύονται, για παράδειγμα όταν συγχωνεύονται τα κλαδιά.
Για να αποφύγετε την πληκτρολόγηση -επαναφέρετε κάθε φορά που τραβάτε μπορείτε να το χρησιμοποιήσετε για να το χρησιμοποιήσετε ως προεπιλογή:
git config -global pull.αναστρέφεται
Εάν θέλετε να συνδυάσετε τις τοπικές δεσμεύσεις πριν τις πιέσετε ανάντη, για παράδειγμα, επειδή ανακαλύψατε ένα τυπογραφικό ή σφάλμα μετά από μια δέσμευση, μπορείτε να το κάνετε αυτό διαδραστικά:
git rebase -i
Εάν θέλετε να μάθετε τις λεπτομέρειες ή να έχετε μια παλιά έκδοση GIT, ακολουθήστε τους παραπάνω δείκτες της βιβλιογραφίας.
Ποια είναι η διαφορά μεταξύ Git Fetch και Git Pull ?
Πριν μιλήσουμε για το διαφορές Μεταξύ αυτών των δύο εντολών, ας τονίσουμε τις ομοιότητες τους: και οι δύο χρησιμοποιούνται Κατεβάστε Νέα δεδομένα από απομακρυσμένο χώρο αποθήκευσης.
Η λήψη δεδομένων είναι ένα ουσιαστικό βήμα στην καθημερινή σας εργασία – επειδή τα απομακρυσμένα δεδομένα που εξετάζετε στο τοπικό αποθετήριο σας είναι απλώς ένα “στιγμιότυπο”. Είναι μόνο ενημερωμένο όπως την τελευταία φορά που εσείς ρητά Λήψη φρέσκων δεδομένων από το τηλεχειριστήριο με “fetch” ή “pull”. Είναι ζωτικής σημασίας να έχουμε υπόψη αυτό το γεγονός κατά την επιθεώρηση των απομακρυσμένων κλάδων και των δεσμεύσεων!
Ας δούμε τώρα τις λεπτές αλλά σημαντικές διαφορές μεταξύ “fetch” και “pull”.
Το φύλλο εξαπατήσει git
Δεν χρειάζεται να θυμάστε όλες αυτές τις εντολές και παραμέτρους: Πάρτε το δημοφιλές “φύλλο εξαπατήσει” – δωρεάν!
Φέρω
$ Git Fetch Origin φώτα Πραγματικά κατεβάζει μόνο νέα δεδομένα από ένα απομακρυσμένο αποθετήριο – αλλά δεν ενσωματώνει κανένα από αυτά τα νέα δεδομένα στα αρχεία εργασίας σας. Το Fetch είναι ιδανικό για να πάρει μια νέα θέα σε όλα τα πράγματα που συνέβησαν σε ένα απομακρυσμένο αποθετήριο.
Λόγω της “αβλαβής” φύσης, μπορείτε να είστε σίγουροι: το Fetch δεν θα χειριστεί, δεν θα καταστρέψει ή θα βιδώσει οτιδήποτε. Αυτό σημαίνει ότι δεν μπορείτε ποτέ να φτάσετε αρκετά συχνά.
Τραβήξτε
$ Git Pull Origin Master τραβήγμα, Αντίθετα, χρησιμοποιείται με διαφορετικό στόχο: Για να ενημερώσετε το τρέχον κλάδο του κεφαλιού σας με τις τελευταίες αλλαγές από τον απομακρυσμένο διακομιστή. Αυτό σημαίνει ότι η έλξη όχι μόνο κατεβάζει νέα δεδομένα. Επίσης, άμεσα ενσωματώ στα τρέχοντα αρχεία αντιγραφής εργασίας σας. Αυτό έχει μερικές συνέπειες:
- Δεδομένου ότι το “git pull” προσπαθεί να συγχωνεύσει τις απομακρυσμένες αλλαγές με τις τοπικές σας, μπορεί να συμβεί μια λεγόμενη “σύγκρουση συγχώνευσης”. Ελέγξτε το σε βάθος Tutorial σχετικά με τον τρόπο αντιμετώπισης των συγκρούσεων συγχώνευσης για περισσότερες πληροφορίες.
- Όπως και για πολλές άλλες ενέργειες, συνιστάται ιδιαίτερα να ξεκινήσετε ένα “git pull” μόνο με ένα καθαρό αντίγραφο εργασίας. Αυτό σημαίνει ότι πρέπει δεν Έχετε οποιεσδήποτε μη δεσμευμένες τοπικές αλλαγές πριν τραβήξετε. Χρησιμοποιήστε τη λειτουργία Stash του Git για να αποθηκεύσετε προσωρινά τις τοπικές σας αλλαγές.
Υπόδειξη
Αυτόματη καταγωγή + αυτόματη κατάσταση στον πύργο
Σε περίπτωση που χρησιμοποιείτε τον πελάτη Tower Git, δεν χρειάζεται να φτάσετε χειροκίνητος Όλη την ώρα: Ο πύργος φέρνει για το φόντο σας, τακτικά και αυτόματα. Και αν προσπαθήσετε να τραβήξετε ενώ έχετε μη δεσμευμένες τοπικές αλλαγές στο αντίγραφο εργασίας σας, ο Πύργος θα προσφέρει αυτόματα αποθηκεύστε με ασφάλεια αυτά σε ένα stash για σενα:
Μάθε περισσότερα
- Δείτε το κεφάλαιο που επιθεωρεί τα απομακρυσμένα δεδομένα στο δωρεάν online βιβλίο μας
- Πιο συχνές ερωτήσεις σχετικά με τον έλεγχο Git & Version
Πάρτε το δημοφιλές μας Φύλλο εξαπάτησης Git δωρεάν!
Θα βρείτε τις πιο σημαντικές εντολές στο μέτωπο και χρήσιμες συμβουλές βέλτιστης πρακτικής στο πίσω μέρος. Πάνω από 100.000 προγραμματιστές το έχουν κατεβάσει για να κάνουν το Git λίγο πιο εύκολο.
Σχετικά με εμάς
Ως κατασκευαστές του Tower, ο καλύτερος πελάτης Git για Mac και Windows, βοηθάμε πάνω από 100.000 χρήστες σε εταιρείες όπως η Apple, το Google, το Amazon, το Twitter και το eBay αξιοποιούν στο έπακρο το Git.
Ακριβώς όπως με τον Πύργο, η αποστολή μας με αυτήν την πλατφόρμα είναι να βοηθήσουμε τους ανθρώπους να γίνουν καλύτεροι επαγγελματίες.
Γι ‘αυτό παρέχουμε τους οδηγούς, τα βίντεο και τα φύλλα μας (σχετικά με τον έλεγχο της έκδοσης με το Git και πολλά άλλα θέματα) δωρεάν.
© 2010-2023 Πύργος – Τα αναφερόμενα ονόματα προϊόντων και λογότυπα είναι ιδιότητα των αντίστοιχων ιδιοκτητών τους.
Λήψη αλλαγών από απομακρυσμένο αποθετήριο
Μπορείτε να χρησιμοποιήσετε κοινές εντολές GIT για πρόσβαση σε απομακρυσμένα αποθετήρια.
Επιλογές για αλλαγές
Αυτές οι εντολές είναι πολύ χρήσιμες όταν αλληλεπιδρούν με απομακρυσμένο χώρο αποθήκευσης. κλώνος και λήψη λήψης απομακρυσμένου κώδικα από απομακρυσμένη διεύθυνση URL του αποθετηρίου στον τοπικό σας υπολογιστή .
Κλωνοποίηση ενός αποθετηρίου
Για να πάρετε ένα πλήρες αντίγραφο του αποθετηρίου ενός άλλου χρήστη, χρησιμοποιήστε τον κλώνο GIT όπως αυτό:
$ git clone https: // github.com/username/repository.git # κλώνοι ένα αποθετήριο στον υπολογιστή σας Μπορείτε να επιλέξετε από πολλές διαφορετικές διευθύνσεις URL κατά την κλωνοποίηση ενός αποθετηρίου. Ενώ συνδέονται στο GitHub, αυτές οι διευθύνσεις URL είναι διαθέσιμες στην κύρια σελίδα του αποθετηρίου όταν κάνετε κλικ

Όταν εκτελείτε κλώνο Git, συμβαίνουν οι ακόλουθες ενέργειες:
- Ένας νέος φάκελος που ονομάζεται repo γίνεται
- Αρχικοποιείται ως αποθετήριο GIT
- Δημιουργείται μια απομακρυσμένη προέλευση, δείχνοντας τη διεύθυνση URL που κλωνοποιήσατε από
- Όλα τα αρχεία και οι δεσμεύσεις του αποθετηρίου λαμβάνονται εκεί
- Ο προεπιλεγμένος κλάδος έχει ελεγχθεί
Για κάθε κλάδο Foo στο απομακρυσμένο αποθετήριο, δημιουργείται ένα αντίστοιχο κλάδο REFS/Remotes/Origin/Origin/Foo δημιουργείται ένα αντίστοιχο κλάδο REFS/REMOTES/ORING/FOO. Συνήθως μπορείτε να συντομεύσετε τέτοια ονόματα υποκαταστημάτων απομακρυσμένης παρακολούθησης σε προέλευση/foo .
Η ανάληψη αλλαγών από απομακρυσμένο αποθετήριο
Χρησιμοποιήστε το Git Fetch για να ανακτήσετε νέα εργασία που πραγματοποιείται από άλλα άτομα. Η λήψη από ένα αποθετήριο αρπάζει όλα τα νέα κλαδιά και ετικέτες απομακρυσμένης παρακολούθησης χωρίς Συγχώνευση αυτών των αλλαγών στα δικά σας κλαδιά.
Εάν έχετε ήδη ένα τοπικό αποθετήριο με μια απομακρυσμένη διεύθυνση URL για το επιθυμητό έργο, μπορείτε να πάρετε όλες τις νέες πληροφορίες χρησιμοποιώντας το git fetch * remotename * στο τερματικό:
$ git fetch remote-name # ενημερώσεις που έγιναν σε ένα απομακρυσμένο αποθετήριο Διαφορετικά, μπορείτε πάντα να προσθέσετε ένα νέο τηλεχειριστήριο και στη συνέχεια να φτάσετε. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα “Διαχείριση απομακρυσμένων αποθετηρίων.«
Συγχώνευση αλλαγών στο τοπικό σας υποκατάστημα
Η συγχώνευση συνδυάζει τις τοπικές αλλαγές σας με τις αλλαγές που έγιναν από άλλους.
Συνήθως, θα συγχωνεύσατε ένα κλάδο απομακρυσμένης παρακολούθησης (i.μι., ένα υποκατάστημα που τραβήχτηκε από ένα απομακρυσμένο αποθετήριο) με το τοπικό σας υποκατάστημα:
$ git συγχώνευση remote-name/branch-name # συγχωνεύει ενημερώσεις που έγιναν online με την τοπική σας εργασία Τραβώντας αλλαγές από απομακρυσμένο χώρο αποθήκευσης
Το Git Pull είναι μια βολική συντόμευση για την ολοκλήρωση τόσο του Git Fetch όσο και του Git Merge στην ίδια εντολή:
$ git pull remote-name branch-name # αρπάζει online ενημερώσεις και τις συγχωνεύει με την τοπική σας εργασία Επειδή το Pull εκτελεί μια συγχώνευση στις ανακτηθέντες αλλαγές, θα πρέπει να διασφαλίσετε ότι η τοπική σας εργασία έχει δεσμευτεί πριν εκτελέσετε την εντολή pull. Εάν συναντήσετε μια σύγκρουση συγχώνευσης, δεν μπορείτε να επιλύσετε ή εάν αποφασίσετε να σταματήσετε τη συγχώνευση, μπορείτε να χρησιμοποιήσετε το Git Merge -Abort για να πάρετε το υποκατάστημα πίσω στο σημείο που βρισκόταν πριν τραβήξετε.
Περαιτέρω ανάγνωση
- “Εργασία με τηλεχειριστήρια” από το Επαγγελματικός Βιβλίο”
- “Αντιμετώπιση προβλημάτων συνδεσιμότητας”
Βοήθεια και υποστήριξη
Βοηθήστε μας να κάνουμε αυτά τα έγγραφα υπέροχα!
Όλα τα έγγραφα Github είναι ανοιχτές πηγές. Δείτε κάτι που είναι λάθος ή ασαφές? Υποβάλετε ένα αίτημα έλξης.



