Fork, clone, branch, commit, pull request… Άγνωστες λέξεις; Σε αυτή την παρουσίαση βλέπουμε βασικές έννοιες και λειτουργίες του Git, και πώς μπορούμε να το εντάξουμε και να το χρησιμοποιήσουμε σε ένα project.
Git: τι είναι ● Είναι ένα κατανεμημένο Σύστημα Ελέγχου Εκδόσεων (Version Control System) ● Διατηρεί πλήρες ιστορικό προσθαφαιρέσεων και αλλαγών σε αρχεία ○ Ποιος έκανε αλλαγές ○ Πότε έγιναν οι αλλαγές ○ Τι αλλαγές έγιναν
Git: γιατί το χρειαζόμαστε ● Συνεργασία / ταυτόχρονες αλλαγές στα ίδια αρχεία ● Ιστορικότητα ● Απομονωμένο περιβάλλον για ανάπτυξη διαφορετικών features ● Έλεγχος αλλαγών
Repository ● Είναι ένας φάκελος που περιλαμβάνει: ○ όλα τα αρχεία στα οποία δουλεύουμε ○ το ιστορικό όλων των ενεργειών που έχουν γίνει στα αρχεία ○ επιπλέον πληροφορίες (branches, κ.α.) ● Ένα repository μπορεί να είναι τοπικό (local) ή απομακρυσμένο (remote) ● Στα remote repositories συγχρονίζονται οι αλλαγές που κάνουμε τοπικά ● Τα remote repositories φιλοξενούνται σε online υπηρεσίες όπως το GitHub, το BitBucket κ.λ.π
Branch ● Ένα branch αντιπροσωπεύει ένα “περιβάλλον”, απομονωμένο από την κύρια πορεία ανάπτυξης ενός project ● Χρησιμοποιούμε διαφορετικά branches για την ανεξάρτητη ανάπτυξη διαφορετικών features ● Κάθε repository έχει ένα βασικό branch (συνήθως main)
Commit ● Καταγραφή των αλλαγών που έχουμε κάνει σε αρχεία στο τρέχον branch ● Συνοδεύεται από ένα μήνυμα/επεξήγηση ● Μπορεί να γίνει μέσω ○ GitHub ○ VS Code (ή άλλου IDE) ○ CLI git commit -m “”
Pull ● Λήψη των αλλαγών που έχουν γίνει στο τρέχον branch από το remote repository στη συσκευή μας ● Μπορεί να γίνει μέσω ○ VS Code (ή άλλου IDE) ○ CLI git pull
Fork ● Δεν αποτελεί ενσωματωμένη λειτουργία του Git ● Είναι πρόσθετη λειτουργία που παρέχουν online υπηρεσίες (π.χ. GitHub, κ.α.) ● Δημιουργεί ένα ανεξάρτητο αντίγραφο του repository ● Σκοπός: ○ Πραγματοποίηση αλλαγών σε repositories που δεν έχουμε πρόσβαση ○ Χρήση ενός υπάρχοντος repository ως βάση για μια δική μας ιδέα
Pull request ● Δεν αποτελεί ενσωματωμένη λειτουργία του Git ● Είναι πρόσθετη λειτουργία που παρέχουν online υπηρεσίες (π.χ. GitHub, κ.α.) ● Ενημερώνει τα μέλη της ομάδας, πως έχουμε πραγματοποιήσει αλλαγές ● Σκοπός: ○ Έλεγχος ορθότητας αλλαγών ○ Συζήτηση και προτάσεις για βελτιστοποίηση αλλαγών ○ Συνεργασία και διαφάνεια