- 
  
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.2 Ξεκινώντας με το Git - Σύντομο ιστορικό του Git
Σύντομο ιστορικό του Git
Όπως συμβαίνει με πολλά όμορφα πράγματα στη ζωή, έτσι και το Git ξεκίνησε με δυναμικές αντιπαραθέσεις και δημιουργικές καταστροφές.
Ο πυρήνας (kernel) του Linux είναι ένα έργο λογισμικού ανοιχτού κώδικα με πολύ ευρύ πεδίο. Κατά την πρώτη περίοδο συντήρησης του πυρήνα του Linux (1991-2002), οι αλλαγές στο λογισμικό διανέμονταν ως επιθέματα (patches) και αρχειοθετημένα (archived) αρχεία. Το 2002 ο πυρήνας του Linux άρχισε να χρησιμοποιεί ένα ιδιωτικό κατανεμημένο VCS, το BitKeeper.
Το 2005, η σχέση ανάμεσα στην κοινότητας που ανέπτυσσε τον πυρήνα του Linux και της εταιρείας που ανέπτυσσε το BitKeeper κατέρρευσε και η δωρεάν χρήση του εργαλείου ανακλήθηκε. Αυτό προέτρεψε την κοινότητα ανάπτυξης του Linux (και ιδιαίτερα τον Linus Torvalds, τον δημιουργό του) να αναπτύξουν το δικό τους εργαλείο βασιζόμενοι στην εμπειρία που απέκτησαν κατά το διάστημα που χρησιμοποιούσαν το BitKeeper. Κάποιοι από τους στόχους του νέου συστήματος ήταν οι εξής:
- 
Ταχύτητα
 - 
Απλή σχεδίαση
 - 
Καλή υποστήριξη για έργα με μη γραμμική ανάπτυξη (με χιλιάδες παράλληλους κλάδους)
 - 
Πλήρως κατανεμημένο
 - 
Ικανό να διαχειριστεί μεγάλα έργα όπως τον πυρήνα του Linux αποτελεσματικά (κυρίως όσον αφορά στην ταχύτητα και τον όγκο των δεδομένων)
 
Από τη γέννησή του το 2005 και έπειτα, το Git έχει εξελιχθεί και ωριμάσει κατά τέτοιο τρόπο, ώστε αφενός να είναι εύχρηστο αφετέρου να διατηρεί αυτά τα αρχικά χαρακτηριστικά. Είναι αξιοθαύμαστα γρήγορο, είναι πολύ αποτελεσματικό σε μεγάλα έργα και επιπλέον διαθέτει ένα απίστευτο σύστημα διαχείρισης κλάδων για μη-γραμμική ανάπτυξη (βλ. Διακλαδώσεις στο Git).