-
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 Εντολές διοχέτευσης
A3.2 Appendix C: Εντολές Git - Λήψη και δημιουργία έργων
Λήψη και δημιουργία έργων
Υπάρχουν δύο τρόποι για να αποκτήσουμε ένα αποθετήριο Git. Ο ένας είναι να το αντιγράψουμε από ένα υπάρχον αποθετήριο στο δίκτυο ή αλλού και ο άλλος να δημιουργήσουμε ένα νέο σε έναν υπάρχοντα κατάλογο.
git init
Για να πάρουμε έναν κατάλογο και να τον μετατρέψουμε σε ένα νέο αποθετήριο Git, ώστε να μπορούμε να ξεκινήσουμε έλεγχο εκδόσεων, μπορούμε απλά να εκτελέσουμε την git init
.
Αυτό αναφέρεται για πρώτη φορά στην ενότητα Αποκτώντας ένα αποθετήριο Git, όπου παρουσιάζεται η δημιουργία ενός ολοκαίνουργιου αποθετηρίου στο οποίο θα δουλεύουμε στη συνέχεια.
Μιλάμε εν συντομία για το πώς μπορούμε να αλλάξουμε τον προεπιλεγμένο κλάδο από τον “master” στην ενότητα Απομακρυσμένοι κλάδοι.
Χρησιμοποιούμε αυτήν την εντολή για να δημιουργήσουμε ένα άδειο κενό αποθετήριο για έναν διακομιστή στην ενότητα Τοποθέτηση του γυμνού αποθετηρίου σε έναν διακομιστή.
Τέλος, βλέπουμε κάποιες λεπτομέρειες του τι πραγματικά κάνει στο παρασκήνιο αυτή η εντολή σκηνές στην ενότητα <<_plumbing_porcelain».
git clone
Η εντολή git clone
είναι στην πραγματικότητα ένα περιτύλιγμα που περιέχει πολλές άλλες εντολές.
Δημιουργεί ένα νέο κατάλογο, πηγαίνει σε αυτόν και τρέχει την git init
για να τον κάνει ένα κενό αποθετήριο Git, προσθέτει ένα απομακρυσμένο αποθετήριο (git remote add
) στη διεύθυνση URL που του διαβιβάζουμε (εξ ορισμού ονομάζεται origin
), τρέχει ένα git fetch
από το απομακρυσμένο αποθετήριο και στη συνέχεια ελέγχει την πιο πρόσφατη υποβολή στον κατάλογο εργασίας μας με την git checkout
.
Η εντολή git clone
χρησιμοποιείται σε δεκάδες μέρη σε όλο το βιβλίο, αλλά θα αναφέρουμε μόνον κάποια ενδιαφέροντα από αυτά.
Εισάγεται και εξηγείται στην ενότητα Κλωνοποιώντας ένα υπάρχον αποθετήριο, στην οποία βλέπουμε μερικά παραδείγματα.
Στην ενότητα Εγκατάσταση του Git σε διακομιστή εξετάζουμε τη χρήση της επιλογής --bare
για να δημιουργήσουμε ένα αντίγραφο ενός αποθετηρίου Git χωρίς κατάλογο εργασίας.
Στην ενότητα Δεμάτιασμα δεδομένων τη χρησιμοποιούμε για να αποσυσκευάσουμε ένα δεματιασμένο αποθετήριο Git.
Τέλος, στην ενότητα Κλωνοποίηση έργου με υπομονάδες μαθαίνουμε την επιλογή --recursive
για να κάνουμε την κλωνοποίηση ενός αποθετηρίου με υπομονάδες λίγο πιο απλή.
Αν και χρησιμοποιείται σε πολλά άλλα μέρη μέσω του βιβλίου, αυτά είναι τα σημεία που είναι κατά κάποιον τρόπο μοναδικά ή στα οποία χρησιμοποιείται με τρόπους που είναι λίγο διαφορετικοί.