-
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 Εντολές διοχέτευσης
A2.1 Appendix B: Ενσωμάτωση του Git στις εφαρμογές μας - Γραμμή εντολών Git
Εάν η εφαρμογή μας απευθύνεται σε προγραμματιστές, οι πιθανότητες ότι θα επωφεληθούν από την ενοποίηση με τον έλεγχο εκδόσεων του πηγαίου κώδικα είναι πολλές. Ακόμη και οι εφαρμογές που δεν αφορούν προγραμματιστές, όπως επεξεργασία εγγράφων, θα μπορούσαν ενδεχομένως να επωφεληθούν από τις λειτουργίες ελέγχου εκδόσεων και το μοντέλο του Git λειτουργεί πολύ καλά για πολλά διαφορετικά σενάρια.
Εάν χρειάζεται να ενσωματώσουμε το Git με την εφαρμογή μας, έχουμε ουσιαστικά τρεις επιλογές: α) εκκίνηση κελύφους και χρήση του εργαλείου γραμμής εντολών Git, β) το Libgit2 και γ) το JGit.
Γραμμή εντολών Git
Μια επιλογή είναι να εκκινήσει μια διαδικασία κελύφους και να χρησιμοποιηθεί η γραμμή εντολών του Git για να κάνει τη δουλειά. Αυτό έχει το πλεονέκτημα ότι είναι σύμφωνο με τον κανόνα και υποστηρίζονται όλες οι λειτουργίες του Git. Αυτό συμβαίνει επίσης να είναι αρκετά εύκολο, καθώς τα περισσότερα περιβάλλοντα εκτέλεσης (runtime environments) έχουν μία σχετικά απλή δυνατότητα για την επίκληση μιας διαδικασίας με ορίσματα γραμμής εντολών. Ωστόσο, αυτή η προσέγγιση έχει κάποια μειονεκτήματα.
Το ένα είναι ότι όλη η έξοδος είναι σε απλό κείμενο. Αυτό σημαίνει ότι θα πρέπει να αναλύσουμε την περιστασιακά μεταβαλλόμενη μορφή εξόδου του Git για να διαβάσουμε πληροφορίες σχετικά με την πρόοδο και τα αποτελέσματα, κάτι που μπορεί να είναι αναποτελεσματικό και επιρρεπές σε σφάλματα.
Ένα άλλο είναι η έλλειψη ανάκτησης σφαλμάτων. Εάν ένα αποθετήριο είναι παρεφθαρμένο κατά κάποιο τρόπο ή ο χρήστης έχει μια μη-έγκυρη τιμή διαμόρφωσης, το Git απλά θα αρνηθεί να εκτελέσει πολλές λειτουργίες.
Ένα ακόμα είναι η διαχείριση της διαδικασίας. Το Git απαιτεί να διατηρούμε ένα περιβάλλον κελύφους ως ξεχωριστή διαδικασία, κάτι που μπορεί να προσθέσει ανεπιθύμητη πολυπλοκότητα. Η προσπάθεια συντονισμού πολλών από αυτές τις διεργασίες (ειδικά όταν δυνητικά έχουμε πρόσβαση στο ίδιο αποθετήριο από διάφορες διεργασίες) μπορεί να είναι μια μεγάλη πρόκληση.