-
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 Εντολές διοχέτευσης
A3.11 Appendix C: Εντολές Git - Διοίκηση
Διοίκηση
Εάν διαχειριζόμαστε ένα αποθετήριο Git ή χρειάζεται να διορθώσουμε κάποια πράγματα σε μεγάλη έκταση, το Git μάς παρέχει μια σειρά διοικητικών εντολών για να μας βοηθήσει.
git gc
Η εντολή git gc τρέχει μια “συλλογή σκουπιδιών” (“garbage collection”) στο αποθετήριό μας, αφαιρώντας τα μη σημαντικά αρχεία από την βάση δεδομένων και πακετάρει τα εναπομείναντα αρχεία σε μια πιο αποτελεσματική μορφή.
Αυτή η εντολή εκτελείται κανονικά στο παρασκήνιο για εμάς, αν και μπορούμε να την εκτελέσουμε χειροκίνητα εάν το επιθυμούμε. Μερικά παραδείγματα αυτού παρουσιάζονται στην ενότητα Συντήρηση.
git fsck
Η εντολή git fsck χρησιμοποιείται για να ελέγξει την εσωτερική βάση δεδομένων για προβλήματα ή ανακολουθίες.
Τη χρησιμοποιούμε μόνο μία φορά στην ενότητα Ανάκτηση δεδομένων για να αναζητήσουμε εκκρεμεί αντικείμενα (dangling objects).
git reflog
Η εντολή git reflog περνάει μέσα από ένα μητρώο στο οποίο καταγράφονται οι θέσεις των κεφαλών των κλάδων μας, ώστε να βρει υποβολές που ενδεχομένως έχουμε χάσει εξαιτίας επανεγγραφής του ιστορικού.
Καλύπτουμε αυτήν την εντολή κυρίως στην ενότητα RefLog Shortnames, όπου δείχνουμε την κανονική χρήση και πώς χρησιμοποιήσουμε το git log -g για να δούμε τις ίδιες πληροφορίες με αυτές που δίνει η έξοδος της git log.
Επίσης βλέπουμε ένα πρακτικό παράδειγμα ανάκτησης ενός τέτοιου χαμένου κλάδου στην ενότητα Ανάκτηση δεδομένων.
git filter-branch
Η εντολή git filter-branch χρησιμοποιείται για να ξαναγράψει πολλές υποβολές σύμφωνα με ορισμένα μοτίβα, όπως η αφαίρεση ενός αρχείου από παντού ή το φιλτράρισμα ολόκληρου του αποθετηρίου σε έναν μόνο υποκατάλογο για την εξαγωγή του έργου.
Στην ενότητα Αφαίρεση ενός αρχείου από κάθε υποβολή εξηγούμε την εντολή και εξερευνούμε διάφορες επιλογές όπως --commit-filter, --subdirectory-filter και --tree-filter.
Στην ενότητα Git-p4 τη χρησιμοποιούμε για να διορθώσουμε εισαγόμενα εξωτερικά αποθετήρια.