Το Git ορίζει διαδικασίες ελέγχου έκδοσης για τον τρόπο κοινής χρήσης των έργων. Υπάρχουν πολλοί ιστότοποι που σας επιτρέπουν να φιλοξενείτε τα έργα σας στο Git. Το GitHub είναι η πιο δημοφιλής επιλογή, το Bitbucket είναι μια άλλη δημοφιλής εναλλακτική, και τα δύο επιτρέπουν δωρεάν λογαριασμούς που μπορούν να δημιουργήσουν απεριόριστους δημόσιους ή ιδιωτικούς χώρους αποθήκευσης. Το GitLab προσφέρει μια αυτο-φιλοξενούμενη εναλλακτική που επιτρέπει την ιδιωτική ανάπτυξη χωρίς να βασίζεται σε φιλοξενία τρίτων.
Η διαδικασία για να κατεβάσετε πρώτα ένα αποθετήριο Git ονομάζεται κλωνοποίηση. Η κλωνοποίηση περιλαμβάνει όλες τις πληροφορίες σχετικά με το αποθετήριο εκείνη τη στιγμή, ωστόσο, για να διατηρείτε το αποθετήριο ενημερωμένο με την πάροδο του χρόνου, πρέπει να κατεβάσετε νέες εκδόσεις. Για να το κάνετε αυτό, απλώς ανοίξτε ένα παράθυρο τερματικού στον κατάλογο με την τοπική έκδοση του αποθετηρίου και πληκτρολογήστε την εντολή "git pull".
Η λειτουργία αυτής της εντολής είναι ιδιαίτερα απλή εάν θέλετε απλώς να κάνετε λήψη μιας ενημερωμένης έκδοσης του αποθετηρίου. η τοπική έκδοση θα ενημερωθεί για να ταιριάζει με την απομακρυσμένη έκδοση. Ενδέχεται, ωστόσο, να δείτε ότι μπορεί να υπάρχουν προβλήματα εάν έχετε κάνει τροποποιήσεις στην τοπική έκδοση.
Η εντολή "git pull" εκτελεί στην πραγματικότητα δύο ξεχωριστές εντολές "git fetch" και "git merge FETCH HEAD". Η δευτερεύουσα εντολή "git fetch" αφαιρεί συγκεκριμένα την πιο πρόσφατη έκδοση από το ηλεκτρονικό αποθετήριο και την αποθηκεύει προσωρινά. Στη συνέχεια, η υποεντολή "git merge FETCH HEAD" συγχωνεύει τις τοπικές αλλαγές σας με την έκδοση που έχετε λάβει, ενώ προτιμώνται οι νεότερες δεσμεύσεις.
Συμβουλή: Μια "δέσμευση git" είναι μια υποβολή μιας αλλαγής, είναι δυνατόν να υπάρχουν πολλές τοπικές και απομακρυσμένες δεσμεύσεις που κάνουν τα ίδια ή διαφορετικά πράγματα. Οι τοπικές δεσμεύσεις δεν είναι ορατές στην απομακρυσμένη έκδοση μέχρι να προωθηθούν οι αλλαγές. Κάθε δέσμευση αναφέρει ακριβώς ποιες αλλαγές έγιναν και περιλαμβάνει μια χρονική σήμανση.
Διένεξη μεταξύ τοπικής και απομακρυσμένης έκδοσης
Στην ιδανική περίπτωση, σε ένα σενάριο συγχώνευσης, δεν θα υπάρχουν διενέξεις και η διαδικασία συγχώνευσης θα ολοκληρωθεί αυτόματα. Οι συγχωνεύσεις μπορεί να είναι ιδιαίτερα εύκολες εάν έγιναν λίγες αλλαγές ή εάν οι τοπικές αλλαγές σας δεν παρεμβαίνουν σε τυχόν απομακρυσμένες αλλαγές. Εάν, ωστόσο, υπάρχουν αντικρουόμενες σύνθετες αλλαγές στο ίδιο τμήμα του κώδικα, το Git θα προκαλέσει ένα σφάλμα συγχώνευσης.
Σε αυτό το σημείο, μπορείτε είτε να ματαιώσετε τη συγχώνευση με την εντολή "git merge –abort" είτε να προσπαθήσετε να επιλύσετε με μη αυτόματο τρόπο τις διενέξεις. Οι εντολές "git mergetool" και "git diff" παρέχουν ένα γραφικό παράδειγμα των διαφορών που θα βοηθήσουν για να είναι όσο το δυνατόν πιο εύκολο να δείτε ποιες αλλαγές πρέπει να εφαρμοστούν χειροκίνητα για να επιτραπεί η συγχώνευση πλήρης. Αφού επιλύσετε όλες τις διενέξεις, πληκτρολογήστε την εντολή "git merge –continue" για να ολοκληρώσετε τη συγχώνευση.