28 KiB
Εισαγωγή στο GitHub
Αυτό το μάθημα καλύπτει τα βασικά του GitHub, μιας πλατφόρμας για φιλοξενία και διαχείριση αλλαγών στον κώδικά σας.
Σημειώσεις από Tomomi Imura
Ερωτηματολόγιο πριν το μάθημα
Εισαγωγή
Σε αυτό το μάθημα θα καλύψουμε:
- την παρακολούθηση της δουλειάς που κάνετε στον υπολογιστή σας
- τη συνεργασία σε έργα με άλλους
- πώς να συνεισφέρετε σε λογισμικό ανοιχτού κώδικα
Προαπαιτούμενα
Πριν ξεκινήσετε, θα πρέπει να ελέγξετε αν το Git είναι εγκατεστημένο. Στο τερματικό πληκτρολογήστε:
git --version
Αν το Git δεν είναι εγκατεστημένο, κατεβάστε το Git. Στη συνέχεια, ρυθμίστε το τοπικό προφίλ Git στο τερματικό:
git config --global user.name "το-όνομά-σας"
git config --global user.email "το-email-σας"
Για να ελέγξετε αν το Git είναι ήδη ρυθμισμένο, μπορείτε να πληκτρολογήσετε:
git config --list
Θα χρειαστείτε επίσης έναν λογαριασμό GitHub, έναν επεξεργαστή κώδικα (όπως το Visual Studio Code) και να ανοίξετε το τερματικό σας (ή: command prompt).
Μεταβείτε στο github.com και δημιουργήστε έναν λογαριασμό αν δεν έχετε ήδη, ή συνδεθείτε και συμπληρώστε το προφίλ σας.
✅ Το GitHub δεν είναι το μοναδικό αποθετήριο κώδικα στον κόσμο· υπάρχουν και άλλα, αλλά το GitHub είναι το πιο γνωστό.
Προετοιμασία
Θα χρειαστείτε έναν φάκελο με ένα έργο κώδικα στον τοπικό σας υπολογιστή (laptop ή PC) και ένα δημόσιο αποθετήριο στο GitHub, το οποίο θα χρησιμεύσει ως παράδειγμα για το πώς να συνεισφέρετε στα έργα άλλων.
Διαχείριση κώδικα
Ας πούμε ότι έχετε έναν φάκελο τοπικά με κάποιο έργο κώδικα και θέλετε να αρχίσετε να παρακολουθείτε την πρόοδό σας χρησιμοποιώντας το git - το σύστημα ελέγχου εκδόσεων. Μερικοί άνθρωποι συγκρίνουν τη χρήση του git με το να γράφετε ένα ερωτικό γράμμα στον μελλοντικό σας εαυτό. Διαβάζοντας τα μηνύματα των commit σας μέρες, εβδομάδες ή μήνες αργότερα, θα μπορείτε να θυμηθείτε γιατί πήρατε μια απόφαση ή να "αναιρέσετε" μια αλλαγή - δηλαδή, όταν γράφετε καλά μηνύματα commit.
Εργασία: Δημιουργία αποθετηρίου και commit κώδικα
Δείτε το βίντεο
-
Δημιουργία αποθετηρίου στο GitHub. Στο GitHub.com, στην καρτέλα αποθετηρίων ή από τη γραμμή πλοήγησης πάνω δεξιά, βρείτε το κουμπί νέο αποθετήριο.
- Δώστε στο αποθετήριο (φάκελο) σας ένα όνομα.
- Επιλέξτε δημιουργία αποθετηρίου.
-
Μεταβείτε στον φάκελο εργασίας σας. Στο τερματικό σας, μεταβείτε στον φάκελο (γνωστό και ως directory) που θέλετε να αρχίσετε να παρακολουθείτε. Πληκτρολογήστε:
cd [name of your folder]
-
Αρχικοποίηση αποθετηρίου git. Στο έργο σας πληκτρολογήστε:
git init
-
Έλεγχος κατάστασης. Για να ελέγξετε την κατάσταση του αποθετηρίου σας, πληκτρολογήστε:
git status
Η έξοδος μπορεί να μοιάζει κάπως έτσι:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txt
Συνήθως η εντολή
git status
σας λέει πράγματα όπως ποια αρχεία είναι έτοιμα να αποθηκευτούν στο αποθετήριο ή έχουν αλλαγές που ίσως θέλετε να διατηρήσετε. -
Προσθήκη όλων των αρχείων για παρακολούθηση Αυτό ονομάζεται επίσης στάδιο αρχείων/προσθήκη αρχείων στην περιοχή σταδιοποίησης.
git add .
Το
git add
μαζί με το επιχείρημα.
υποδεικνύει ότι όλα τα αρχεία και οι αλλαγές σας είναι για παρακολούθηση. -
Προσθήκη επιλεγμένων αρχείων για παρακολούθηση
git add [file or folder name]
Αυτό μας βοηθά να προσθέσουμε μόνο επιλεγμένα αρχεία στην περιοχή σταδιοποίησης όταν δεν θέλουμε να κάνουμε commit όλα τα αρχεία ταυτόχρονα.
-
Αφαίρεση όλων των αρχείων από τη σταδιοποίηση
git reset
Αυτή η εντολή μας βοηθά να αφαιρέσουμε όλα τα αρχεία από τη σταδιοποίηση ταυτόχρονα.
-
Αφαίρεση ενός συγκεκριμένου αρχείου από τη σταδιοποίηση
git reset [file or folder name]
Αυτή η εντολή μας βοηθά να αφαιρέσουμε μόνο ένα συγκεκριμένο αρχείο από τη σταδιοποίηση που δεν θέλουμε να συμπεριλάβουμε στο επόμενο commit.
-
Διατήρηση της δουλειάς σας. Σε αυτό το σημείο έχετε προσθέσει τα αρχεία σε μια λεγόμενη περιοχή σταδιοποίησης. Ένα μέρος όπου το Git παρακολουθεί τα αρχεία σας. Για να κάνετε την αλλαγή μόνιμη, πρέπει να κάνετε commit τα αρχεία. Για να το κάνετε αυτό, δημιουργείτε ένα commit με την εντολή
git commit
. Ένα commit αντιπροσωπεύει ένα σημείο αποθήκευσης στην ιστορία του αποθετηρίου σας. Πληκτρολογήστε το εξής για να δημιουργήσετε ένα commit:git commit -m "first commit"
Αυτό κάνει commit όλα τα αρχεία σας, προσθέτοντας το μήνυμα "πρώτο commit". Για μελλοντικά μηνύματα commit, θα θέλετε να είστε πιο περιγραφικοί στην περιγραφή σας για να μεταφέρετε τι είδους αλλαγή κάνατε.
-
Σύνδεση του τοπικού αποθετηρίου Git με το GitHub. Ένα αποθετήριο Git είναι καλό στον υπολογιστή σας, αλλά κάποια στιγμή θα θέλετε να έχετε αντίγραφο ασφαλείας των αρχείων σας κάπου και επίσης να προσκαλέσετε άλλους να συνεργαστούν μαζί σας στο αποθετήριο σας. Ένα εξαιρετικό μέρος για να το κάνετε αυτό είναι το GitHub. Θυμηθείτε ότι έχουμε ήδη δημιουργήσει ένα αποθετήριο στο GitHub, οπότε το μόνο που χρειάζεται να κάνουμε είναι να συνδέσουμε το τοπικό αποθετήριο Git με το GitHub. Η εντολή
git remote add
θα το κάνει αυτό. Πληκτρολογήστε την παρακάτω εντολή:Σημείωση, πριν πληκτρολογήσετε την εντολή, μεταβείτε στη σελίδα του αποθετηρίου σας στο GitHub για να βρείτε το URL του αποθετηρίου. Θα το χρησιμοποιήσετε στην παρακάτω εντολή. Αντικαταστήστε το
https://github.com/username/repository_name.git
με το URL του GitHub σας.git remote add origin https://github.com/username/repository_name.git
Αυτό δημιουργεί μια απομακρυσμένη σύνδεση, που ονομάζεται "origin", η οποία δείχνει στο αποθετήριο GitHub που δημιουργήσατε νωρίτερα.
-
Αποστολή τοπικών αρχείων στο GitHub. Μέχρι στιγμής έχετε δημιουργήσει μια σύνδεση μεταξύ του τοπικού αποθετηρίου και του αποθετηρίου GitHub. Ας στείλουμε αυτά τα αρχεία στο GitHub με την παρακάτω εντολή
git push
, όπως εξής:Σημείωση, το όνομα του branch σας μπορεί να είναι διαφορετικό από το
main
.git push -u origin main
Αυτό στέλνει τα commits σας στο branch "main" στο GitHub.
-
Προσθήκη περισσότερων αλλαγών. Αν θέλετε να συνεχίσετε να κάνετε αλλαγές και να τις στέλνετε στο GitHub, θα χρειαστεί να χρησιμοποιήσετε τις παρακάτω τρεις εντολές:
git add . git commit -m "type your commit message here" git push
Συμβουλή, ίσως θέλετε επίσης να υιοθετήσετε ένα αρχείο
.gitignore
για να αποτρέψετε αρχεία που δεν θέλετε να παρακολουθούνται από το να εμφανίζονται στο GitHub - όπως το αρχείο σημειώσεων που αποθηκεύετε στον ίδιο φάκελο αλλά δεν έχει θέση σε ένα δημόσιο αποθετήριο. Μπορείτε να βρείτε πρότυπα για αρχεία.gitignore
στο .gitignore templates.
Μηνύματα commit
Ένα εξαιρετικό θέμα γραμμής μηνύματος commit ολοκληρώνει την παρακάτω πρόταση: Αν εφαρμοστεί, αυτό το commit θα <το θέμα της γραμμής σας εδώ>
Για το θέμα, χρησιμοποιήστε την προστακτική, ενεστώτα: "αλλάξτε" αντί για "αλλαγμένο" ή "αλλαγές".
Όπως στο θέμα, στο σώμα (προαιρετικό) χρησιμοποιήστε επίσης την προστακτική, ενεστώτα. Το σώμα θα πρέπει να περιλαμβάνει το κίνητρο για την αλλαγή και να το συγκρίνει με την προηγούμενη συμπεριφορά. Εξηγείτε το γιατί
, όχι το πώς
.
✅ Αφιερώστε λίγα λεπτά για να περιηγηθείτε στο GitHub. Μπορείτε να βρείτε ένα πραγματικά εξαιρετικό μήνυμα commit; Μπορείτε να βρείτε ένα πραγματικά ελάχιστο; Ποιες πληροφορίες πιστεύετε ότι είναι οι πιο σημαντικές και χρήσιμες για να μεταδοθούν σε ένα μήνυμα commit;
Εργασία: Συνεργασία
Ο κύριος λόγος για να βάλετε πράγματα στο GitHub ήταν να κάνετε δυνατή τη συνεργασία με άλλους προγραμματιστές.
Συνεργασία σε έργα με άλλους
Δείτε το βίντεο
Στο αποθετήριό σας, μεταβείτε στο Insights > Community
για να δείτε πώς συγκρίνεται το έργο σας με τα προτεινόμενα πρότυπα κοινότητας.
Εδώ είναι μερικά πράγματα που μπορούν να βελτιώσουν το αποθετήριο σας στο GitHub:
- Περιγραφή. Προσθέσατε περιγραφή για το έργο σας;
- README. Προσθέσατε ένα README; Το GitHub παρέχει καθοδήγηση για τη συγγραφή ενός README.
- Οδηγίες συνεισφοράς. Έχει το έργο σας οδηγίες συνεισφοράς;
- Κώδικας Δεοντολογίας. Ένας Κώδικας Δεοντολογίας;
- Άδεια Χρήσης. Ίσως το πιο σημαντικό, μια άδεια χρήσης.
Όλοι αυτοί οι πόροι θα ωφελήσουν την ένταξη νέων μελών στην ομάδα. Και αυτά είναι συνήθως τα πράγματα που οι νέοι συνεισφέροντες εξετάζουν πριν καν κοιτάξουν τον κώδικά σας, για να δουν αν το έργο σας είναι το κατάλληλο μέρος για να αφιερώσουν τον χρόνο τους.
✅ Τα αρχεία README, αν και απαιτούν χρόνο για να προετοιμαστούν, συχνά παραμελούνται από πολυάσχολους συντηρητές. Μπορείτε να βρείτε ένα παράδειγμα ενός ιδιαίτερα περιγραφικού; Σημείωση: υπάρχουν μερικά εργαλεία για τη δημιουργία καλών README που ίσως θέλετε να δοκιμάσετε.
Εργασία: Συγχώνευση κώδικα
Τα έγγραφα συνεισφοράς βοηθούν τους ανθρώπους να συνεισφέρουν στο έργο. Εξηγούν τι είδους συνεισφορές αναζητάτε και πώς λειτουργεί η διαδικασία. Οι συνεισφέροντες θα χρειαστεί να περάσουν από μια σειρά βημάτων για να μπορέσουν να συνεισφέρουν στο αποθετήριο σας στο GitHub:
- Δημιουργία αντιγράφου του αποθετηρίου σας. Πιθανότατα θα θέλετε οι άνθρωποι να δημιουργήσουν αντίγραφο του έργου σας. Η δημιουργία αντιγράφου σημαίνει τη δημιουργία ενός αντιγράφου του αποθετηρίου σας στο προφίλ τους στο GitHub.
- Κλωνοποίηση. Από εκεί θα κλωνοποιήσουν το έργο στον τοπικό τους υπολογιστή.
- Δημιουργία branch. Θα θέλετε να τους ζητήσετε να δημιουργήσουν ένα branch για τη δουλειά τους.
- Εστίαση της αλλαγής σε μία περιοχή. Ζητήστε από τους συνεισφέροντες να επικεντρώσουν τις συνεισφορές τους σε ένα πράγμα τη φορά - έτσι οι πιθανότητες να συγχωνεύσετε τη δουλειά τους είναι μεγαλύτερες. Φανταστείτε ότι γράφουν μια διόρθωση σφάλματος, προσθέτουν μια νέα λειτουργία και ενημερώνουν αρκετές δοκιμές - τι γίνεται αν θέλετε ή μπορείτε να εφαρμόσετε μόνο 2 από τις 3 ή 1 από τις 3 αλλαγές;
✅ Φανταστείτε μια κατάσταση όπου τα branches είναι ιδιαίτερα κρίσιμα για τη συγγραφή και την αποστολή καλού κώδικα. Ποιες περιπτώσεις χρήσης μπορείτε να σκεφτείτε;
Σημείωση, γίνετε η αλλαγή που θέλετε να δείτε στον κόσμο και δημιουργήστε branches για τη δική σας δουλειά επίσης. Οποιαδήποτε commits κάνετε θα γίνουν στο branch που έχετε "επιλέξει". Χρησιμοποιήστε
git status
για να δείτε ποιο branch είναι αυτό.
Ας περάσουμε από τη ροή εργασίας ενός συνεισφέροντα. Υποθέστε ότι ο συνεισφέρων έχει ήδη δημιουργήσει αντίγραφο και κλωνοποιήσει το αποθετήριο, ώστε να έχει ένα αποθετήριο Git έτοιμο για εργασία στον τοπικό του υπολογιστή:
-
Δημιουργία branch. Χρησιμοποιήστε την εντολή
git branch
για να δημιουργήσετε ένα branch που θα περιέχει τις αλλαγές που σκοπεύουν να συνεισφέρουν:git branch [branch-name]
-
Μετάβαση στο branch εργασίας. Μεταβείτε στο συγκεκριμένο branch και ενημερώστε τον φάκελο εργασίας με
git switch
:git switch [branch-name]
-
Εργασία. Σε αυτό το σημείο θέλετε να προσθέσετε τις αλλαγές σας. Μην ξεχάσετε να ενημερώσετε το Git γι' αυτές με τις παρακάτω εντολές:
git add . git commit -m "my changes"
Βεβαιωθείτε ότι δίνετε στο commit σας ένα καλό όνομα, για το δικό σας καλό καθώς και για τον συντηρητή του αποθετηρίου που βοηθάτε.
-
Συνδυασμός της δουλειάς σας με το branch
main
. Κάποια στιγμή τελειώνετε τη δουλειά σας και θέλετε να τη συνδυάσετε με αυτή του branchmain
. Το branchmain
μπορεί να έχει αλλάξει εν τω μεταξύ, οπότε βεβαιωθείτε ότι πρώτα το ενημερώνετε με τις παρακάτω εντολές:git switch main git pull
Σε αυτό το σημείο θέλετε να βεβαιωθείτε ότι τυχόν συγκρούσεις, καταστάσεις όπου το Git
Pull request
φαίνεται σαν ένας αστείος όρος, γιατί στην πραγματικότητα θέλεις να σπρώξεις (push) τις αλλαγές σου στο έργο. Ωστόσο, ο συντηρητής (ιδιοκτήτης του έργου) ή η βασική ομάδα πρέπει να εξετάσουν τις αλλαγές σου πριν τις συγχωνεύσουν με τον "κύριο" κλάδο του έργου, οπότε ουσιαστικά ζητάς απόφαση αλλαγής από έναν συντηρητή.
Ένα pull request είναι ο χώρος όπου συγκρίνεις και συζητάς τις διαφορές που εισάγονται σε έναν κλάδο, με κριτικές, σχόλια, ενσωματωμένα τεστ και άλλα. Ένα καλό pull request ακολουθεί περίπου τους ίδιους κανόνες με ένα μήνυμα commit. Μπορείς να προσθέσεις μια αναφορά σε ένα ζήτημα στον ιχνηλάτη ζητημάτων, όταν για παράδειγμα η δουλειά σου διορθώνει ένα ζήτημα. Αυτό γίνεται χρησιμοποιώντας το #
ακολουθούμενο από τον αριθμό του ζητήματος. Για παράδειγμα, #97
.
🤞Ελπίζουμε να περάσουν όλοι οι έλεγχοι και οι ιδιοκτήτες του έργου να συγχωνεύσουν τις αλλαγές σου στο έργο🤞
Ενημέρωσε τον τρέχοντα τοπικό κλάδο εργασίας σου με όλα τα νέα commits από τον αντίστοιχο απομακρυσμένο κλάδο στο GitHub:
git pull
Πώς να συνεισφέρεις σε ανοιχτό κώδικα
Αρχικά, ας βρούμε ένα αποθετήριο (ή repo) στο GitHub που σε ενδιαφέρει και στο οποίο θέλεις να συνεισφέρεις μια αλλαγή. Θα χρειαστεί να αντιγράψεις το περιεχόμενό του στον υπολογιστή σου.
✅ Ένας καλός τρόπος να βρεις αποθετήρια φιλικά για αρχάριους είναι να αναζητήσεις με την ετικέτα 'good-first-issue'.
Υπάρχουν διάφοροι τρόποι αντιγραφής κώδικα. Ένας τρόπος είναι να "κλωνοποιήσεις" το περιεχόμενο του αποθετηρίου, χρησιμοποιώντας HTTPS, SSH ή το GitHub CLI (Command Line Interface).
Άνοιξε το τερματικό σου και κλωνοποίησε το αποθετήριο ως εξής:
git clone https://github.com/ProjectURL
Για να δουλέψεις στο έργο, άλλαξε στον σωστό φάκελο:
cd ProjectURL
Μπορείς επίσης να ανοίξεις ολόκληρο το έργο χρησιμοποιώντας το Codespaces, τον ενσωματωμένο επεξεργαστή κώδικα / περιβάλλον ανάπτυξης στο cloud του GitHub, ή το GitHub Desktop.
Τέλος, μπορείς να κατεβάσεις τον κώδικα σε έναν συμπιεσμένο φάκελο.
Μερικά ακόμα ενδιαφέροντα πράγματα για το GitHub
Μπορείς να κάνεις star, watch και/ή "fork" οποιοδήποτε δημόσιο αποθετήριο στο GitHub. Μπορείς να βρεις τα αποθετήρια που έχεις κάνει star στο αναδυόμενο μενού πάνω δεξιά. Είναι σαν να κάνεις σελιδοδείκτη, αλλά για κώδικα.
Τα έργα έχουν έναν ιχνηλάτη ζητημάτων, συνήθως στο GitHub στην καρτέλα "Issues", εκτός αν αναφέρεται διαφορετικά, όπου οι άνθρωποι συζητούν ζητήματα που σχετίζονται με το έργο. Και η καρτέλα Pull Requests είναι εκεί όπου οι άνθρωποι συζητούν και αξιολογούν αλλαγές που βρίσκονται σε εξέλιξη.
Τα έργα μπορεί επίσης να έχουν συζητήσεις σε φόρουμ, λίστες αλληλογραφίας ή κανάλια συνομιλίας όπως Slack, Discord ή IRC.
✅ Ρίξε μια ματιά στο νέο σου αποθετήριο GitHub και δοκίμασε μερικά πράγματα, όπως να επεξεργαστείς ρυθμίσεις, να προσθέσεις πληροφορίες στο αποθετήριο σου και να δημιουργήσεις ένα έργο (όπως έναν πίνακα Kanban). Υπάρχουν πολλά που μπορείς να κάνεις!
🚀 Πρόκληση
Συνεργάσου με έναν φίλο για να δουλέψετε στον κώδικα του άλλου. Δημιουργήστε ένα έργο συνεργατικά, κάντε fork κώδικα, δημιουργήστε κλάδους και συγχωνεύστε αλλαγές.
Κουίζ μετά το μάθημα
Ανασκόπηση & Αυτομελέτη
Διάβασε περισσότερα για το πώς να συνεισφέρεις σε λογισμικό ανοιχτού κώδικα.
Εξάσκηση, εξάσκηση, εξάσκηση. Το GitHub έχει εξαιρετικά μονοπάτια μάθησης διαθέσιμα μέσω του skills.github.com:
Θα βρεις επίσης πιο προχωρημένα μαθήματα.
Εργασία
Ολοκλήρωσε το μάθημα Πρώτη Εβδομάδα στο GitHub
Αποποίηση Ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.