-
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 stash και clean
- 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 στο Eclipse
- A1.4 Το Git στο Bash
- A1.5 Το Git στο Zsh
- A1.6 Το Git στο Powershell
- A1.7 Ανακεφαλαίωση
-
A2. Appendix B: Ενσωμάτωση του Git στις εφαρμογές μας
- A2.1 Γραμμή εντολών Git
- A2.2 Libgit2
- A2.3 JGit
-
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.2 Ξεκινώντας με το Git - Μια μικρή αναδρομή στην ιστορία του Git
Μια μικρή αναδρομή στην ιστορία του Git
Όπως συμβαίνει με πολλά όμορφα πράγματα στη ζωή, έτσι και το Git ξεκίνησε με δυναμικές αντιπαραθέσεις και δημιουργικές καταστροφές.
Ο πυρήνας του Linux είναι ένα έργο λογισμικού ανοιχτού κώδικα με πολύ ευρύ πεδίο. Κατά το μεγαλύτερο μέρος της εποχής κατά την οποία ο πυρήνας του Linux συντηρούνταν (1991-2002), οι αλλαγές στο λογισμικό διανέμονταν ως επιθέματα (patches) και αρχειοθετημένα (archived) αρχεία. Το 2002 ο πυρήνας του Linux ξεκίνησε να χρησιμοποιεί ένα ιδιωτικό κατανεμημένο σύστημα ελέγχου εκδόσεων, το BitKeeper.
Το 2005, η σχέση μεταξύ της κοινότητας που ανέπτυσσε τον πυρήνα του Linux και της εταιρείας που ανέπτυσσε το BitKeeper κατέρρευσε και η δωρεάν χρήση του εργαλείου ανακαλέστηκε. Αυτό προέτρεψε την κοινότητα ανάπτυξης του Linux (και ιδιαίτερα τον Linus Torvalds, τον δημιουργό του) να αναπτύξουν το δικό τους εργαλείο βασισμένοι σε όσα είχαν μάθει κατά το διάστημα που χρησιμοποιούσαν το BitKeeper. Κάποιοι από τους στόχους του νέου συστήματος ήταν οι ακόλουθοι:
-
Ταχύτητα
-
Απλή σχεδίαση
-
Καλή υποστήριξη για έργα με μη γραμμική ανάπτυξη (με χιλιάδες παράλληλους κλάδους)
-
Πλήρως κατανεμημένο
-
Ικανό να διαχειριστεί μεγάλα έργα όπως τον πυρήνα του Linux αποτελεσματικά (κυρίως όσον αφορά το μέγεθος των δεδομένων και την ταχύτητα)
Από τη γέννησή του το 2005 και έπειτα, το Git έχει εξελιχθεί και ωριμάσει με τέτοιο τρόπο ώστε αφενός να είναι εύχρηστο αφετέρου να διατηρεί αυτά τα αρχικά χαρακτηριστικά. Είναι πάρα πολύ γρήγορο και αποτελεσματικό με μεγάλα έργα και επίσης διαθέτει ένα απίστευτο σύστημα διαχείρισης κλάδων για ανάπτυξη έργων που δεν ακολουθούν γραμμική ανάπτυξη (βλ. [ch03-git-branching]).