-
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.8 Appendix A: Το Git σε άλλα περιβάλλοντα - Το Git στο Powershell
Το Git στο Powershell
Το σύνηθες τερματικό γραμμής εντολών στα Windows (cmd.exe) δεν είναι ικανό για μια εξατομικευμένη εμπειρία Git, αλλά όσοι χρησιμοποιούμε το Powershell, έχουμε αυτήν την τύχη.
Αυτό επίσης δουλεύει αν τρέχουμε PowerShell Core σε Linux ή Mac.
Ένα πακέτο που ονομάζεται posh-git (https://github.com/dahlbyk/posh-git) παρέχει ισχυρές δυνατότητες συμπλήρωσης με tab, καθώς και μια βελτιωμένη προτροπή για να μας βοηθήσει να έχουμε τον έλεγχο της κατάστασης αποθετηρίων μας.
Μοιάζει με αυτό:
Εγκατάσταση
Προαπαιτούμενα (Windows μόνο)
Προτού να είμαστε σε θέση να τρέξουμε PowerShell scripts στο μηχάνημά μας, πρέπει να έχουμε ορίσει την τοπική ExecutionPolicy σε RemoteSigned (βασικά, οτιδήποτε εκτός από Undefined και Restricted).
Αν επιλέξουμε το AllSigned αντί του RemoteSigned, όλα τα (δικά μας) τοπικά scripts πρέπει να υπογραφούν ηλεκτρονικά για να μπορούν να εκτελεστούν.
Με το RemoteSigned, μόνο τα scripts που έχουν το ZoneIdentifier ορισμένο σε Internet (αυτά τα οποία κατέβηκαν από το διαδίκτυο) πρέπει να υπογραφούν, τα άλλα όχι.
Αν είμαστε διαχειριστές και θέλουμε να το ορίσουμε για όλους τους χρήστες σε αυτό το μηχάνημα, χρησιμοποιούμε την επιλογή -Scope LocalMachine.
Αν είμαστε κανονικοί χρήστες, χωρίς δικαιώματα διαχειριστή, μπορούμε να χρησιμοποιήσουμε την επιλογή -Scope CurrentUser για να το ορίσουμε μόνο για εμάς.
Περισσότερα σχετικά με τα PowerShell Scopes: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_scopes.
Περισσότερα σχετικά με τα PowerShell ExecutionPolicy: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy.
Για ορίσουμε την τιμή της ExecutionPolicy σε RemoteSigned για όλους τους χρήστες χρησιμοποιούμε την επόμενη εντολή:
> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
PowerShell Γκαλερί (Gallery)
Αν έχουμε τουλάχιστον PowerShell 5 ή PowerShell 4 με τον PackageManagement εγκατεστημένο, μπορούμε να χρησιμοποιήσουμε τον package manager για να εγκαταστήσουμε το posh-git για εμάς.
Περισσότερες πληροφορίες σχετικά με PowerShell Gallery: https://learn.microsoft.com/en-us/powershell/scripting/gallery/overview.
> Install-Module posh-git -Scope CurrentUser -Force
> Install-Module posh-git -Scope CurrentUser -AllowPrerelease -Force # Newer beta version with PowerShell Core support
Αν θέλουμε να εγκαταστήσουμε το posh-git για όλους τους χρήστες, χρησιμοποιούμε την επιγολή -Scope AllUsers και εκτελούμε την εντολή από μια PowerShell κονσόλα.
Αν η δεύτερη εντολή αποτύχει με σφάλμα όπως Module 'PowerShellGet' was not installed by using Install-Module, πρέπει να τρέξουμε άλλη εντολή πρώτα:
> Install-Module PowerShellGet -Force -SkipPublisherCheck
Μετά μπορούμε να επιστρέψουμε και να ξαναπροσπαθήσουμε. Αυτό συμβαίνει, γιατί τα modules που έρχονται μαζί με το Windows PowerShell είναι υπογεγραμμένα με διαφορετικό εκδότη πιστοποιητικών.
Ενημέρωση PowerShell Prompt
Για να συμπεριλάβουμε Git πληροφορίες μέσα στο κέλυφός μας, το posh-git module θα πρέπει να εισαχθεί.
Για να έχουμε εισαγμένο το posh-git κάθε φορά που ξεκινά το PowerShell, εκτελούμε την εντολή Add-PoshGitToProfile που θα εισάγει την δήλωση μέσα στο $profile script.
Αυτό το script εκτελείται κάθε φορά που ανοίγουμε την PowerShell κονσόλα.
Θυμόμαστε ότι υπάρχουν διάφορα $profile scripts.
Π.χ. ένα για την κονσόλα και ένα διαφορετικό για το ISE.
> Import-Module posh-git
> Add-PoshGitToProfile -AllHosts
Από τον Πηγαίο κώδικα
Απλώς κατεβάζουμε την έκδοση posh-git από https://github.com/dahlbyk/posh-git/releases, και την αποσυμπιέζουμε.
Μετά εισάγουμε το module χρησιμοποιώντας ολόκληρη τη διαδρομή (path) στο posh-git.psd1 αρχείο:
> Import-Module <path-to-uncompress-folder>\src\posh-git.psd1
> Add-PoshGitToProfile -AllHosts
Αυτό θα βάλει την κατάλληλη γραμμή στο profile.ps1 αρχείο, και το posh-git θα ενεργοποιηθεί στην επόμενη φορά που θα ανοίξουμε το PowerShell.
Για μια περιγραφή της Git status συνοπτικής πληροφορίας που εμφανίζεται στο κέλυφος βλ. https://github.com/dahlbyk/posh-git/blob/master/README.md#git-status-summary-information Για περισσότερες λεπτομέριες για το πως να προσαρμόσουμε το posh-git κέλυφός μας βλ. https://github.com/dahlbyk/posh-git/blob/master/README.md#customization-variables.