-
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 Εντολές διοχέτευσης
A1.7 Appendix A: Το Git σε άλλα περιβάλλοντα - Το Git στο Zsh
Το Git στο Zsh
Το Git περιέχει επίσης με μια βιβλιοθήκη συμπλήρωσης με tab για το Zsh.
Για να το χρησιμοποιήσουμε, απλώς τρέχουμε autoload -Uz compinit && compinit μέσα στο .zshrc αρχείο.
Το περιβάλλον του Zsh είναι λίγο πιο ισχυρό από αυτό του Bash:
$ git che<tab>
check-attr -- display gitattributes information
check-ref-format -- ensure that a reference name is well formed
checkout -- checkout branch or paths to working tree
checkout-index -- copy files from index to working directory
cherry -- find commits not merged upstream
cherry-pick -- apply changes introduced by some existing commits
Οι αμφισβητούμενες συμπληρώσεις με tab δεν αναφέρονται απλά· έχουν χρήσιμες περιγραφές και μπορούμε να πλοηγηθούμε γραφικά στη λίστα πατώντας επανειλημμένα το κουμπί tab. Αυτό λειτουργεί με εντολές Git, τα ορίσματά τους και τα ονόματα άλλων πραγμάτων μέσα στο αποθετήριο (όπως refs και απομακρυσμένα αποθετήρια), καθώς και τα ονόματα αρχείων και όλα τα άλλα πράγματα, τα οποία γνωρίζει το Zsh πώς να τα συμπληρώσει με tab.
Το Zsh έρχεται με ένα πλαίσιο (framework) για να πάρουμε πληροφορίες από το σύστημα ελέγχου εκδόσεων (version control system, VCS), που ονομάζεται vcs_info.
Για να συμπεριλάβουμε το όνομα του κλάδου στην δεξία πλευρά της προτροπής, προσθέτουμε τις παρακάτω γραμμές στο ~/.zshrc αρχείο μας.
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
# PROMPT='${vcs_info_msg_0_}%# '
zstyle ':vcs_info:git:*' formats '%b'
Αυτό έχει ως αποτέλεσμα την εμφάνιση του τρέχοντος κλάδου στη δεξιά πλευρά του παραθύρου του τερματικού, όποτε το κέλυφος μας βρίσκεται μέσα σε ένα αποθετήριο Git.
Η αριστερή πλευρά επίσης υποστηρίζεται, προφανώς, απλώς βγάζουμε από σχόλιο την ανάθεση στο PROMPT.
Μοιάζει λίγο σαν αυτό:
zsh
Για περισσότερες πληροφορίες στο vcs_info, κοιτάζουμε την τεκμηρίωση στο zshcontrib(1) στην σελίδα χειρισμού (manual page), ή διαδικτυακά https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#Version-Control-Information.
Αντί για vcs_info, μπορεί να προτιμούμε το script προτροπής με προσαρμογή (customization) που έρχεται με το Git, με το όνομα git-prompt.sh· βλέπουμε εδώ https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh για περισσότερες πληροφορίες.
Το git-prompt.sh είναι συμβατό και με το Bash κα το Zsh.
Το Zsh είναι αρκετά ισχυρό ώστε να υπάρχουν ολόκληρα πλαίσια που είναι αφιερωμένα στο να το καταστήσουν καλύτερο. Ένα από αυτά ονομάζεται "oh-my-zsh" και διατίθεται στη διεύθυνση https://github.com/ohmyzsh/ohmyzsh. Το σύστημα προσθήκης του oh-my-zsh έρχεται με ισχυρή συμπλήρωση με tab για το Git και έχει μια ποικιλία από "θέματα", πολλά από τα οποία εμφανίζουν δεδομένα ελέγχου έκδοσης. Η εικόνα Ένα παράδειγμα ενός θέματος oh-my-zsh είναι μόνο ένα παράδειγμα του τι μπορεί να γίνει με αυτό το σύστημα.