Παράκαμψη προς το κυρίως περιεχόμενο

Git και GitHub τι είναι, ποια η διαφορά τους και πώς χρησιμοποιούνται

Git και GitHub: για αρχάριους: τι είναι, ποια η διαφορά

Όταν ένα project αρχίζει να μεγαλώνει, αυξάνονται και οι αλλαγές στον κώδικα: νέα αρχεία, διορθώσεις, δοκιμές και διαφορετικές εκδόσεις της ίδιας εφαρμογής. Το Git βοηθά να οργανωθούν αυτές οι αλλαγές, ενώ το GitHub προσφέρει έναν online χώρο όπου τα projects μπορούν να αποθηκεύονται και να αναπτύσσονται συνεργατικά.

Οι δύο όροι εμφανίζονται συχνά μαζί, αλλά έχουν διαφορετικό ρόλο: το Git είναι σύστημα ελέγχου εκδόσεων, ενώ το GitHub είναι πλατφόρμα που φιλοξενεί Git repositories και προσθέτει εργαλεία συνεργασίας.

 GitGitHub
Τι είναιΣύστημα ελέγχου εκδόσεωνOnline πλατφόρμα ανάπτυξης και συνεργασίας
Πού λειτουργείΤοπικά στον υπολογιστήOnline
Βασικός ρόλοςΚαταγράφει και οργανώνει αλλαγέςΦιλοξενεί repositories και υποστηρίζει συνεργασία
Παραδείγματαcommit, branch, merge, logpull requests, code review, issues

Τι είναι το Git;

Το Git είναι ένα κατανεμημένο σύστημα ελέγχου εκδόσεων, γνωστό ως version control system. Καταγράφει την εξέλιξη των αρχείων ενός project, ώστε να είναι γνωστό τι άλλαξε και να μπορούν να συγκριθούν ή να επαναφερθούν προηγούμενες εκδόσεις.

Σύμφωνα με το επίσημο Pro Git, ένα σύστημα version control καταγράφει τις αλλαγές σε αρχεία με την πάροδο του χρόνου και επιτρέπει την επιστροφή σε προηγούμενες καταστάσεις.

Αυτό είναι ιδιαίτερα χρήσιμο στον προγραμματισμό. Αν μια εφαρμογή λειτουργεί σωστά και μια μεταγενέστερη αλλαγή δημιουργήσει πρόβλημα, το Git επιτρέπει να εξεταστεί τι ακριβώς άλλαξε.

Παράλληλα, αποφεύγονται πρακτικές όπως η δημιουργία πολλών φακέλων με ονόματα τύπου project-final, project-final2 και project-final-new. Η ιστορία του project διατηρείται οργανωμένη μέσα στο ίδιο repository.

Τι είναι το GitHub;

Το GitHub είναι μια online πλατφόρμα ανάπτυξης λογισμικού που βασίζεται στο Git. Φιλοξενεί Git repositories και προσφέρει εργαλεία για συνεργασία, έλεγχο αλλαγών, συζήτηση κώδικα και διαχείριση ενός project.

Η επίσημη τεκμηρίωση What is GitHub? εξηγεί ότι το Git καταγράφει τις αλλαγές και την ιστορία ενός project, ενώ το GitHub προσφέρει έναν online χώρο όπου αυτά τα repositories μπορούν να φιλοξενούνται και να χρησιμοποιούνται συνεργατικά.

Ένας φοιτητής, για παράδειγμα, μπορεί να γράφει κώδικα στον υπολογιστή του χρησιμοποιώντας Git και να συγχρονίζει το project με το GitHub ώστε να έχει πρόσβαση σε αυτό online ή να συνεργάζεται με άλλους.

Τι είναι ένα repository;

Το repository, ή απλώς repo, είναι ο βασικός χώρος ενός project. Περιλαμβάνει τα αρχεία του μαζί με το ιστορικό των αλλαγών που παρακολουθεί το Git.

Ένα repository μπορεί να αφορά μια μικρή άσκηση Python, μια ιστοσελίδα, μια πανεπιστημιακή εργασία ή μια μεγάλη εφαρμογή.

Το ίδιο project μπορεί να υπάρχει τοπικά στον υπολογιστή και να συνδέεται με ένα remote repository στο GitHub.

Οι βασικές έννοιες που χρειάζεται να γνωρίζει ένας αρχάριος

Commit

Ένα commit καταγράφει μια συγκεκριμένη ομάδα αλλαγών στην ιστορία του project. Συνήθως αντιστοιχεί σε μία λογική ενέργεια, όπως η διόρθωση ενός σφάλματος ή η προσθήκη μιας νέας λειτουργίας.

Branch

Ένα branch δημιουργεί μια ξεχωριστή γραμμή εργασίας. Έτσι μπορεί κάποιος να δοκιμάσει μια νέα λειτουργία χωρίς να αλλάξει άμεσα τη βασική έκδοση του project. Όταν η αλλαγή είναι έτοιμη, μπορεί να ενσωματωθεί ξανά.

Clone

Με το clone δημιουργείται στον υπολογιστή ένα τοπικό αντίγραφο ενός υπάρχοντος Git repository. Είναι ένας συνηθισμένος τρόπος να ξεκινήσει κάποιος να δουλεύει πάνω σε project που βρίσκεται ήδη στο GitHub.

Push και pull

Το push στέλνει τα τοπικά commits προς ένα remote repository, όπως το GitHub. Το pull φέρνει στον υπολογιστή τις νεότερες αλλαγές που υπάρχουν στο remote repository.

Το commit και το push επομένως δεν είναι το ίδιο: το commit καταγράφει την αλλαγή στο τοπικό Git repository, ενώ το push τη συγχρονίζει με το remote repository.

Τι είναι το pull request;

Το pull request είναι λειτουργία του GitHub που χρησιμοποιείται όταν κάποιος θέλει να προτείνει την ενσωμάτωση αλλαγών από ένα branch σε ένα άλλο.

Σύμφωνα με την επίσημη τεκμηρίωση του GitHub, τα pull requests επιτρέπουν την πρόταση, την εξέταση και την ενσωμάτωση αλλαγών στον κώδικα.

Σε μια ομαδική πανεπιστημιακή εργασία, για παράδειγμα, ένας φοιτητής μπορεί να ολοκληρώσει ένα μέρος της εφαρμογής σε ξεχωριστό branch και να ανοίξει pull request. Τα υπόλοιπα μέλη της ομάδας μπορούν να εξετάσουν τις αλλαγές πριν ενσωματωθούν στη βασική έκδοση.

Πώς μοιάζει μια απλή διαδικασία;

Ας υποθέσουμε ότι δημιουργείτε μια μικρή εφαρμογή Python:

  1. δημιουργείτε το project και ενεργοποιείτε το Git,
  2. προσθέτετε τα πρώτα αρχεία και κάνετε commit,
  3. δημιουργείτε repository στο GitHub,
  4. συνδέετε το τοπικό project και κάνετε push,
  5. δημιουργείτε branch όταν θέλετε να δοκιμάσετε μια νέα λειτουργία,
  6. κάνετε νέα commits και, αν συνεργάζεστε με άλλους, χρησιμοποιείτε pull request πριν από την ενσωμάτωση των αλλαγών.

Η ίδια βασική διαδικασία επαναλαμβάνεται σε μικρά και μεγάλα projects και γίνεται πιο φυσική όσο αυξάνεται η πρακτική εξάσκηση.

Ποιες εντολές αξίζει να μάθετε πρώτα;

Ένας αρχάριος δεν χρειάζεται να απομνημονεύσει μεγάλο αριθμό εντολών. Οι πρώτες που αξίζει να γνωρίζει είναι:

  • git init – δημιουργία νέου Git repository,
  • git status – εμφάνιση της κατάστασης των αρχείων,
  • git add – επιλογή αλλαγών για το επόμενο commit,
  • git commit – καταγραφή αλλαγών,
  • git log – εμφάνιση του ιστορικού,
  • git clone – δημιουργία τοπικού αντιγράφου repository,
  • git pull – λήψη νεότερων αλλαγών,
  • git push – αποστολή τοπικών commits στο remote repository.

Η τεκμηρίωση του GitHub για το Git αποτελεί επίσης χρήσιμο σημείο αναφοράς για τις βασικές έννοιες και λειτουργίες.

Χρειάζεται να χρησιμοποιείτε τη γραμμή εντολών;

Η γραμμή εντολών βοηθά να γίνει κατανοητό τι ακριβώς συμβαίνει σε κάθε βήμα, αλλά δεν είναι ο μοναδικός τρόπος χρήσης του Git.

Υπάρχουν γραφικά εργαλεία, όπως το GitHub Desktop, καθώς και editors και IDEs με ενσωματωμένη υποστήριξη Git.

Για έναν αρχάριο έχει αξία να γνωρίζει τη βασική λογική και μερικές εντολές, ακόμη και αν αργότερα χρησιμοποιεί κυρίως γραφικό περιβάλλον.

Γιατί είναι χρήσιμα Git και GitHub στους φοιτητές;

Git και GitHub χρησιμοποιούνται συχνά σε πραγματικά software projects, αλλά είναι χρήσιμα και κατά τη διάρκεια των σπουδών.

Μπορούν να βοηθήσουν έναν φοιτητή να:

  • κρατά οργανωμένες διαφορετικές εκδόσεις μιας εργασίας,
  • συνεργάζεται με συμφοιτητές σε κοινό project,
  • εντοπίζει τι άλλαξε όταν εμφανιστεί ένα πρόβλημα,
  • δοκιμάζει αλλαγές χωρίς να επηρεάζει τη βασική έκδοση,
  • οργανώνει προσωπικά projects προγραμματισμού.

Ένα public repository μπορεί επίσης να χρησιμοποιηθεί για την παρουσίαση προσωπικών projects, όταν ο δημιουργός επιλέγει να κάνει τον κώδικα δημόσιο.

Πώς να ξεκινήσετε

Η πιο χρήσιμη σειρά είναι να κατανοήσετε πρώτα τι είναι repository και commit, να δημιουργήσετε ένα μικρό project και στη συνέχεια να μάθετε push, pull και branches.

Ένα μικρό πραγματικό project βοηθά περισσότερο από την απομνημόνευση εντολών. Μια απλή εφαρμογή, μια προσωπική ιστοσελίδα ή μια πανεπιστημιακή εργασία αρκεί για να εφαρμοστούν οι βασικές έννοιες.

Όταν οι έννοιες local και remote repository, branches, commits και συγχρονισμός αρχίζουν να μπερδεύονται, η πρακτική καθοδήγηση πάνω σε πραγματικό project μπορεί να βοηθήσει. Στο idietera.gr μπορείτε να βρείτε καθηγητές Πληροφορικής και προγραμματισμού για online ή δια ζώσης μαθήματα.

Δείτε ακόμη

Πηγές

Συχνές Ερωτήσεις

Το Git είναι το σύστημα που καταγράφει και οργανώνει τις αλλαγές ενός project. Το GitHub είναι online πλατφόρμα που φιλοξενεί Git repositories και προσφέρει επιπλέον εργαλεία συνεργασίας, όπως pull requests και code review.