Git 🌙

2.1 Τα θεμελιώδη στοιχεία του Git - Απόκτηση αποθετηρίου Git

Αν μπορούσατε να διαβάσετε μόνο ένα κεφάλαιο για το Git, τότε θα έπρεπε να διαβάσετε αυτό. Το κεφάλαιο αυτό καλύπτει κάθε βασική εντολή που χρειάζεστε για να επιτελέσετε τη συντριπτική πλειονότητα των ενεργειών που μπορείτε να κάνετε με το Git. Στο τέλος αυτού το κεφαλαίου, θα μπορείτε να παραμετροποιείτε (configure) και να αρχικοποιείτε ένα αποθετήριο, να αρχίζετε και να σταματάτε την παρακολούθηση (tracking) αρχείων, να τοποθετείτε αλλαγές στον προθάλαμο (stage) ή να τις υποβάλλετε (commit). Επίσης θα σας δείξουμε πώς να ρυθμίσετε το Git ώστε να αγνοεί ορισμένα αρχεία και μοτίβα αρχείων, πώς να αναιρείτε λάθη εύκολα και γρήγορα, πώς να περιηγείστε στο ιστορικό του έργου σας ώστε να βλέπετε τις αλλαγές μεταξύ των υποβολών και πώς να ωθείτε (push) σε και να τραβάτε (pull) από απομακρυσμένα αποθετήρια.

Απόκτηση αποθετηρίου Git

Μπορείτε να δημιουργήσετε ένα έργο στο Git χρησιμοποιώντας δύο βασικές προσεγγίσεις.

  1. Να πάρετε ένα έργο που έχετε σε κάποιο υπάρχοντα κατάλογο που δεν βρίσκεται υπό έλεγχο εκδόσεων και να τον μετατρέψετε σε ένα αποθετήριο Git

  2. Να κλωνοποιήσετε (clone) ένα υπάρχον αποθετήριο Git από έναν άλλο διακομιστή

Σε κάθε περίπτωση, θα αποκτήσετε ένα αποθετήριο Git τοπικά στον υπολογιστή σας.

Αρχικοποίηση αποθετηρίου σε έναν υπάρχοντα κατάλογο

Αν έχετε ένα έργο σε έναν κατάλογο που δεν βρίσκεται υπό έλεγχο εκδόσεων και θέλετε να ξεκινήσετε να τον ελέγχετε με το Git, πρώτα πρέπει να πάτε σε αυτό τον κατάλογο. Αυτό γίνεται με διαφορετικό τρόπο ανάλογα με το σύστημά σας.

Σε Linux

$ cd /home/user/my_project

Σε macOS:

$ cd /Users/user/my_project

Σε Windows:

$ cd C:/Users/user/my_project

Τώρα πληκτρολογήστε:

$ git init

Η εντολή αυτή δημιουργεί έναν νέο υποκατάλογο με το όνομα .git ο οποίος περιέχει όλα τα απαραίτητα αρχεία για το αποθετήριο — ένα σκελετό για το αποθετήριό σας. Στο σημείο αυτό, τίποτα δεν παρακολουθείται ακόμα από το έργο σας. (Βλ. [ch10-git-internals] για περισσότερες πληροφορίες σχετικά με το τι ακριβώς αρχεία περιέχονται στον κατάλογο .git, που μόλις δημιουργήσατε.)

Αν θέλετε να ξεκινήσετε τον έλεγχο έκδοσης στα υπάρχοντα αρχεία, θα πρέπει να ξεκινήσετε την παρακολούθηση αυτών των αρχείων και να κάνετε την πρώτη υποβολή (commit). Για να το επιτύχετε αυτό θα χρειαστείτε μερικές εντολές git add οι οποίες προσδιορίζουν τα αρχεία που θέλετε να παρακολουθείτε και μια εντολή git commit:

$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'

Θα εξετάσουμε σε λίγο τι κάνουν οι παραπάνω εντολές. Στο σημείο αυτό, έχετε ένα αποθετήριο Git με κάποια παρακολουθούμενα αρχεία και μια αρχική υποβολή.

Κλωνοποίηση υπάρχοντος αποθετηρίου

Αν θέλετε να αποκτήσετε ένα αντίγραφο ενός υπάρχοντος αποθετηρίου Git — για παράδειγμα, ένα έργο στο οποίο θα θέλατε να συνεισφέρετε — η εντολή που χρειάζεστε είναι git clone. Αν είστε εξεικοιωμένοι με άλλα συστήματα ελέγχου έκδοσης όπως το Subversion, θα παρατηρήσετε ότι η εντολή είναι "clone" και όχι "checkout". Αυτή είναι μια σημαντική διάκριση — το Git δεν παίρνει απλά ένα αντίγραφο της τρέχουσας κατάστασης του αποθετηρίου, αλλά ένα πλήρες αντίγραφο σχεδόν όλων των δεδομένων που βρίσκονται στον διακομιστή. Με την εντολή git clone όλες οι εκδόσεις του κάθε αρχείου του έργου αποθηκεύονται τοπικά. Μάλιστα, αν ο δίσκος του διακομιστή σας αλλοιωθεί, μπορείτε να χρησιμοποιήσετε οποιονδήποτε από τους κλώνους του ώστε να θέσετε τον διακομιστή στην κατάσταση που ήταν όταν κλωνοποιήθηκε.

Για να κλωνοποιήσετε ένα αποθετήριο, εκτελείτε την εντολή git clone <url>. Για παράδειγμα, αν θέλετε να κλωνοποιήσετε τη βιβλιοθήκη libgit2 του Git, θα πρέπει να εκτελέσετε:

$ git clone https://github.com/libgit2/libgit2

Η εντολή αυτή δημιουργεί έναν κατάλογο με το όνομα libgit2, αρχικοποιεί έναν κατάλογο .git μέσα σε αυτό, κατεβάζει όλα τα δεδομένα αυτού του αποθετηρίου καθώς και ένα αντίγραφο από την τελευταία έκδοση. Αν περιηγηθείτε στον καινούριο κατάλογο libgit2, θα δείτε τα αρχεία του έργου μέσα σε αυτό, έτοιμα προς χρήση ή επεξεργασία. Αν θέλετε να κλωνοποιήσετε το αποθετήριο σε έναν κατάλογο με διαφορετικό όνομα, μπορείτε να το ορίσετε με την παρακάτω εναλλακτική της εντολής:

$ git clone https://github.com/libgit2/libgit2 mylibgit

Η εντολή αυτή έχει το ίδιο αποτέλεσμα με την προηγούμενη με τη διαφορά ότι ο κατάλογος που θα δημιουργηθεί θα ονομάζεται mylibgit.

Το Git συνεργάζεται με διάφορα πρωτόκολλα μεταφοράς που μπορείτε να χρησιμοποιήσετε. Το προηγούμενο παράδειγμα χρησιμοποεί το πρωτόκολλο https://, ενδέχεται επίσης να δείτε το git:// ή το user@server:path/to/repo.git το οποίο χρησιμοποιεί το πρωτόκολλο μεταφοράς SSH. Το κεφάλαιο [r_git_on_the_server] παρουσιάζει όλες τις διαθέσιμες εναλλακτικές που με τις οποίες μπορεί ένας διακομιστής να σας δώσει πρόσβαση σε ένα αποθετήριο Git, καθώς και τα πλεονεκτήματα και μειονεκτήματα της κάθε εναλλακτικής.

scroll-to-top