Git
Chapters ▾ 2nd Edition

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

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

Αποκτώντας ένα αποθετήριο Git

Μπορείτε να δημιουργήσετε ένα έργο στο Git χρησιμοποιώντας δύο βασικές προσεγγίσεις. Η πρώτη παίρνει ένα υπάρχον έργο ή κατάλογο και το εισάγει μέσα στο Git. Η δεύτερη κλωνοποιεί ένα υπάρχον αποθετήριο Git από έναν άλλο διακομιστή. You can get a Git project using two main approaches. The first takes an existing project or directory and imports it into Git. The second clones an existing Git repository from another server.

Αρχικοποιώντας ένα Αποθετήριο σε έναν Υπάρχοντα Κατάλογο

Αν θέλετε να ξεκινήσετε τον εντοπισμό ένα υπάρχοντος έργου στο Git, θα χρειαστεί να πάτε στον κατάλογο του έργου σας και να πληκτρολογήσετε

$ git init

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

Αν θέλετε να ξεκινήσετε τον έλεγχο έκδοσης στα υπάρχοντα αρχεία, θα πρέπει να ξεκινήσετε τον εντοπισμό στα αρχεία αυτά και να κάνετε μια πρώτη υποβολή τους. Για να το επιτύχετε αυτό θα χρειαστείτε μερικές εντολές 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. Στο κεφάλαιο Git on the Server θα σας παρουσιάσουμε όλες τις διαθέσιμες εναλλακτικές που μπορεί να χρησιμοποιήσει ο διακομιστής ώστε να αποκτήσει πρόσβαση στο αποθετήριο Git σας, καθώς και τα πλεονεκτήματα και μειονεκτή΄ματα της κάθε εναλλακτικής.