-
1. Ξεκινώντας με το Git
-
2. Τα θεμελιώδη στοιχεία του Git
-
3. Διακλαδώσεις στο Git
-
4. Το Git στον διακομιστή
- 4.1 Τα πρωτόκολλα
- 4.2 Εγκατάσταση του Git σε διακομιστή
- 4.3 Δημιουργία δημόσιου κλειδιού SSH
- 4.4 Στήσιμο του διακομιστή
- 4.5 Δαίμονες του Git
- 4.6 Έξυπνο HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Επιλογές φιλοξενίας από τρίτους
- 4.10 Ανακεφαλαίωση
-
5. Κατανεμημένο Git
-
6. GitHub
-
7. Εργαλεία του Git
- 7.1 Επιλογή αναθεώρησης
- 7.2 Διαδραστική εργασία με το στάδιο καταχώρισης
- 7.3 Αποθέματα και Καθαρισμός
- 7.4 Υπογραφή της δουλειάς μας
- 7.5 Αναζήτηση
- 7.6 Η ιστορία ξαναγράφεται
- 7.7 Απομυθοποίηση της reset
- 7.8 Προχωρημένη Συγχώνευση
- 7.9 Rerere
- 7.10 Αποσφαλμάτωση με το Git
- 7.11 Υπομονάδες
- 7.12 Δεμάτιασμα δεδομένων
- 7.13 Replace
- 7.14 Αποθήκευση διαπιστευτηρίων
- 7.15 Ανακεφαλαίωση
-
8. Εξατομίκευση του Git
-
9. Το Git και άλλα συστήματα
- 9.1 Το Git ως πελάτης
- 9.2 Μετανάστευση στο Git
- 9.3 Ανακεφαλαίωση
-
10. Εσωτερική λειτουργία του Git
- 10.1 Διοχετεύσεις και πορσελάνες
- 10.2 Αντικείμενα του Git
- 10.3 Αναφορές του Git
- 10.4 Πακετάρισμα αρχείων
- 10.5 Τα refspec
- 10.6 Πρωτόκολλα μεταφοράς
- 10.7 Διατήρηση και ανάκτηση δεδομένων
- 10.8 Μεταβλητές περιβάλλοντος
- 10.9 Ανακεφαλαίωση
-
A1. Appendix A: Το Git σε άλλα περιβάλλοντα
- A1.1 Γραφικές διεπαφές
- A1.2 Το Git στο Visual Studio
- A1.3 Git στο Visual Studio Code
- A1.4 Git στο IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git στο Sublime Text
- A1.6 Το Git στο Bash
- A1.7 Το Git στο Zsh
- A1.8 Το Git στο Powershell
- A1.9 Ανακεφαλαίωση
-
A2. Appendix B: Ενσωμάτωση του Git στις εφαρμογές μας
- A2.1 Γραμμή εντολών Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Appendix C: Εντολές Git
- A3.1 Ρύθμιση και διαμόρφωση
- A3.2 Λήψη και δημιουργία έργων
- A3.3 Βασική λήψη στιγμιοτύπων
- A3.4 Διακλάδωση και συγχώνευση
- A3.5 Κοινή χρήση και ενημέρωση έργων
- A3.6 Επιθεώρηση και σύγκριση
- A3.7 Αποσφαλμάτωση
- A3.8 Επιθέματα
- A3.9 Ηλεκτρονικό ταχυδρομείο
- A3.10 Εξωτερικά Συστήματα
- A3.11 Διοίκηση
- A3.12 Εντολές διοχέτευσης
1.6 Ξεκινώντας με το Git - Ρύθμιση του Git για πρώτη φορά
Ρύθμιση του Git για πρώτη φορά
Έχοντας πλέον εγκατεστημένο το Git στον υπολογιστή μας, θα χρειαστεί να κάνουμε μερικές ρυθμίσεις ώστε να εξατομικεύσουμε το περιβάλλον του Git. Τις ρυθμίσεις αυτές θα χρειαστεί να τις κάνουμε μόνο μία φορά σε κάθε υπολογιστή· θα μείνουν ως έχουν μετά από αναβαθμίσεις. Μπορούμε επίσης να αλλάξουμε τις ρυθμίσεις αυτές απλά και μόνο διατρέχοντας τις εντολές ξανά.
Το Git περιέχει ένα εργαλείο που ονομάζεται git config το οποίο μας επιτρέπει να δούμε και να θέσουμε τιμές στις λεγόμενες μεταβλητές διαμόρφωσης (configuration variables), που ελέγχουν όλες τις πτυχές εμφάνισης και λειτουργίας του Git.
Οι μεταβλητές αυτές αποθηκεύονται σε τρία διαφορετικά μέρη:
-
Στο αρχείο
[path]/etc/gitconfig: περιέχει τιμές για όλους τους χρήστες του συστήματος και όλα τα αποθετήριά τους. Αν χρησιμοποιήσουμε την επιλογή--systemστην εντολήgit config, τότε η εντολή διαβάζει και γράφει από αυτό το αρχείο. Επειδή αυτό είναι ένα αρχείο ρύθμισης του συστήματος, πρέπει να έχουμε προνόμια διαχειριστή ή superuser για να το τροποποιήσουμε. -
Στο αρχείο
~/.gitconfigή~/.config/git/config: περιέχει τιμές συγκεκριμένες για εμάς, τον χρήστη. Για να κάνουμε το Git να γράφει και να διαβάζει από αυτό το αρχείο θα πρέπει να χρησιμοποιήσουμε την επιλογή--global, και αυτό επηρεάζει όλα τα αποθετήρια με τα οποία εργαζόμαστε στο σύστημά μας. -
Στο αρχείο
configστον κατάλογο του Git (το αρχείο αυτό ονομάζεται.git/config) του αποθετηρίου το οποίο χρησιμοποιούμε ανά πάσα στιγμή: περιέχει τιμές ειδικά για το συγκεριμένο αποθετήριο. Μπορούμε να επιβάλουμε στο Git να διαβάζει και να γράφει σε αυτό το αρχείο με την επιλογή-- local, που είναι και η προεπιλογή. Προφανώς, θα πρέπει να βρίσκομαστε μέσα σε κάποιο αποθετήριο Git για να λειτουργήσει σωστά αυτή η εντολή.
Καθένα από τα παραπάνω επίπεδα υπερσκελίζει τις τιμές του προηγούμενου επιπέδου, οπότε οι τιμές του αρχείου .git/config υπερσκελίζουν εκείνες του αρχείου [path]/etc/gitconfig.
Σε υπολογιστές Windows, το Git θα αναζητήσει το αρχείο .gitconfig στον κατάλογο $HOME (συνήθως στην τοποθεσία C:\Users\$USER).
Επίσης, θα αναζητήσει το αρχείο [path]/etc/gitconfig, η τοποθεσία του οποίου ορίζεται σε σχέση με το MSys root, που αντιστοιχεί στην τοποθεσία στην οποία αποφασίσαμε να εγκαταστήσουμε το Git στα Windows μας, όταν το εγκαθιστούσαμε.
Αν χρησιμοποιούμε την έκδοση 2.x ή μεταγενέστερη του Git για Windows, υπάρχει επίσης ένα αρχείο ρυθμίσεων του συστήματος στον κατάλογο C:\Documents and Settings\All Users\Application Data\Git\config στα Windows XP και στον C:\ProgramData\Git\config στα Windows Vista ή μεταγενέστερα.
Αυτό το αρχείο ρυθμίσεων μορεί να αλλαχθεί μόνον με την εντολή git config -f <αρχείο> όταν εκτελείται από έναν διαχειριστή.
Μπορούμε να δούμε όλες τις ρυθμίσεις και από που έρχονται χρησιμοποιώντας:
$ git config --list --show-origin
Η ταυτότητά μας
Το πρώτο πράγμα που θα πρέπει να κάνουμε αφού εγκαταστήσουμε το Git είναι να ορίσουμε το όνομα χρήστη και τη διεύθυνση e-mail μας. Το παραπάνω είναι πολύ σημαντικό καθώς κάθε υποβολή (commit) που κάνουμε στο Git θα περιέχει τις πληροφορίες αυτές:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Όπως και οι προηγούμενες ρυθμίσεις, έτσι και αυτή χρειάζεται να γίνει μόνο μία φορά αν χρησιμοποιήσουμε την επιλογή --global, διότι τότε το Git θα χρησιμοποιεί πάντα αυτές τις πληροφορίες για οτιδήποτε κάνουμε σε αυτό το σύστημα.
Αν θέλουμε να τροποποιήσουμε τις παραπάνω πληροφορίες για συγκεκριμένα έργα τότε μπορούμε να τρέξουμε τις ίδιες εντολές, μέσα από τον κατάλογο του έργου, χωρίς την επιλογή --global.
Πολλά από τα γραφικά εργαλεία θα μας βοηθήσουν σε αυτή τη διαδικασία όταν τα χρησιμοποιήσουμε για πρώτη φορά.
Ο επεξεργαστής κειμένου
Τώρα που έχουμε ορίσει την ταυτότητά μας, μπορούμε να καθορίσουμε τον επεξεργαστή κειμένου που θα χρησιμοποιούμε όταν το Git μας ζητάει να επεξεργαστούμε κάποιο κείμενο. Αν δεν τον ρυθμίσουμε, το Git θα χρησιμοποιήσει τον προεπιλεγμένο επεξεργαστή κειμένου του συστήματός μας.
Αν θέλουμε να χρησιμοποιήσουμε έναν διαφορετικό επεξεργαστή κειμένου, όπως τον Emacs, μπορούμε να εκτελέσουμε την εντολή:
$ git config --global core.editor emacs
Στα Windows, αν θέλουμε να χρησιμοποιήσουμε διαφορετικό επεξεργαστή κειμένου, πρέπει να ορίσουμε ολόκληρο το path στο εκτελέσιμο αρχείο. Αυτό μπορεί να είναι διαφορετικό ανάλογα πως είναι πακεταρισμένος ο επεξεργαστής κειμένου.
Στην περίπτωση του Notepad++, ένας δημοφιλείς επεξεργαστής κειμένου, πιθανόν να θέλουμε να χρησιμοποιήσουμε την 32-bit έκδοση, αφού την χρονική περίοδο που γράφεται το βιβλίο η 64-bit έκδοση δεν υποστηρίζει όλα τα πρόσθετα εργαλεία. Αν είμαστε σε 32-bit Windows σύστημα, ή έχουμε 64-bit επεξεργαστή κειμένου σε 64-bit σύστημα, θα εκτελέσουμε το παρακάτω:
$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
|
Note
|
Ο Vim και ο Emacs είναι δημοφιλείς επεξεργαστές κειμένου που χρησιμοποιούνται συχνά από προγραμματιστές σε λειτουργικά συστήματα που βασίζονται στο Unix, όπως το Linux και το Mac. Αν χρησιμοποιείτε κάποιον άλλο επεξεργαστή κειμένου, ή κάποια έκδοση 32-bit, μπορείτε να βρείτε οδηγίες για το πώς να εγκαταστήσετε τον αγαπημένο σας επεξεργαστή με το Git στο git config core.editor commands. |
|
Warning
|
Αν δεν ρυθμίσουμε τον επεξεργαστή κειμένου που χρησιμοποιούμε με αυτό τον τρόπο, θα μπερδευτούμε πολύ όταν το Git προσπαθήσει να τον εκκινήσει. Για παράδειγμα στα Windows, μπορεί μια λειτουργία του Git να τερματιστεί πρόωρα κατά τη διάρκεια της επεξεργασίας. |
Το προεπιλεγμένο όνομα κλάδου μας
Το Git εξ ορισμού δημιουργεί έναν κλάδο (branch) με το όνομα master, όταν δημιουργούμε ένα καινούριο αποθετήριο με την εντολή git init.
Από την έκδοση 2.28 και μετά του Git, μπορούμε να ορίσουμε διαφορετικό όνομα για τον αρχικό κλάδο.
Για να ορίσουμε ως προεπιλεγμένο όνομα κλάδου το main, εκτελούμε:
$ git config --global init.defaultBranch main
Έλεγχος των ρυθμίσεών μας
Αν θέλουμε να ελέγξουμε τις ρυθμίσεις μας, μπορούμε να εκτελέσουμε την εντολή git config --list για να παραθέσουμε όλες τις ρυθμίσεις του Git:
$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
Επειδή το Git διαβάζει τις ρυθμίσεις του από διαφορετικά αρχεία ([path]/etc/gitconfig και ~/.gitconfig για παράδειγμα), μπορεί να δούμε κάποιες από αυτές περισσότερες από μια φορά.
Στην περίπτωση αυτή, το Git θα χρησιμοποιήσει την τελευταία τιμή για κάθε ξεχωριστή ρύθμιση.
Μπορούμε επίσης να δούμε την τιμή μιας συγκεκριμένης ρύθμισης πληκτρολογώντας git config <key>:
$ git config user.name
John Doe
|
Note
|
Επειδή το Git ενδεχομένως μπορεί να διαβάσει την τιμή της ίδιας μεταβλητής ρύθμισης από περισσότερα από ένα αρχεία, είναι δυνατό να δείτε κάποια αναπάντεχη τιμή για κάποια από αυτές τις μεταβλητές χωρίς να γνωρίζετε γιατί. Σε τέτοιες περιπτώσεις, μπορείτε να ρωτήσετε το Git ποια είναι η προέλευση (origin) αυτής της τιμής και θα μας πει ποιο αρχείο ρύθμισης όρισε την τιμή αυτής της παραμέτρου:
|