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

Το Git παίζει ζωτικό ρόλο στα περισσότερα έργα ανοιχτού κώδικα. Μάθετε ποια σχέση έχει το Git με τον ανοιχτό κώδικα και πώς μπορείτε να χρησιμοποιήσετε αυτό το παραγωγικό εργαλείο για να ενισχύσετε τις συνεισφορές σας.

Η σχέση μεταξύ Git και Open-Source

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

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

Οι συνεισφορές ανοιχτού κώδικα πραγματοποιούνται με δημόσιο και συνεργατικό τρόπο, γνωστό και ως "Δημιουργία σε δημόσιο". Μάθετε περισσότερα για τη διαφορά μεταξύ λογισμικό ανοιχτού και κλειστού κώδικα.

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

Λειτουργίες Git που χρησιμοποιούνται σε Open-Source

Το Git έχει πολλές εντολές που χρησιμοποιούνται για την εκτέλεση λειτουργιών στη διεπαφή του. Υπάρχουν πολλές τέτοιες εντολές, αλλά δεν χρειάζεται να τις μάθετε όλες για να συνεισφέρετε στον ανοιχτό κώδικα. Ακολουθούν ορισμένοι βασικοί όροι και εντολές που θα συναντήσετε:

  • Πιρούνι: Ένα αντίγραφο ενός αποθετηρίου GitHub (repo). Όταν κάνετε ένα πιρούνι, λαμβάνετε ένα αντίγραφό του στον λογαριασμό σας στο GitHub, επιτρέποντάς σας να επεξεργαστείτε τα περιεχόμενα χωρίς να επηρεάζετε το γονικό αποθετήριο του έργου.
  • Θέμα: Μια ιδέα, ένα σφάλμα ή μια εργασία στην οποία μπορούν να εργαστούν οι συνεισφέροντες. Ένα πρόβλημα με μια ετικέτα όπως καλό πρώτο θέμα είναι μια απλή εργασία που προορίζεται να παρακινήσει τους συντελεστές να συμμετάσχουν σε έργα ανοιχτού κώδικα.
  • Επιγραφή:Χρησιμοποιείται για την κατηγοριοποίηση θεμάτων και συζητήσεων.
  • Συντηρητές: Συνεισφέροντες με άδεια τροποποίησης των αρχείων στο αποθετήριο ενός έργου. Είναι επίσης γνωστοί ως κάτοχοι κωδικών.
  • Συντελεστές: Οποιοσδήποτε συνεισφέρει κώδικα, τεκμηρίωση ή άλλους τεχνικούς πόρους σε ένα Έργο.

Ακολουθούν ορισμένες κοινές εντολές που θα χρησιμοποιήσετε στην ανάπτυξη ανοιχτού κώδικα:

  • Κλαδί: Αντίγραφο του περιεχομένου του ρεπό. Ένα repo μπορεί να έχει πολλά υποκαταστήματα: το κύριο υποκατάστημα και πολλά άλλα, εάν είναι απαραίτητο. Ο προεπιλεγμένος κλάδος είναι κύριος/κύριος, και μπορείτε να ονομάσετε επιπλέον κλάδους ανάλογα με τον σκοπό τους.
  • Συγχώνευση:Συγχώνευση σημαίνει ένωση διαφορετικών κλάδων μεταξύ τους έτσι ώστε να έχουν τον ίδιο κωδικό.
  • Αίτημα έλξης (PR): Ειδοποιεί τη συντήρηση ότι έχετε προωθήσει κώδικα που πρέπει να ελεγχθεί. Κάντε ένα αίτημα έλξης όταν είστε έτοιμοι να συγχωνευθείτε με τον γονικό κλάδο και χρειάζεστε κριτικές από άλλους.
  • Μακρινός: Ηλεκτρονική έκδοση του τοπικού σας αποθετηρίου.
  • Φέρω: Πραγματοποιεί λήψη περιεχομένου ενός απομακρυσμένου αποθετηρίου στο τοπικό σας αποθετήριο.
  • Διαπράττω: Παρακολουθεί τις αλλαγές σε ένα αρχείο σε τοπικό ή διαδικτυακό αποθετήριο. Όλες οι δεσμεύσεις έχουν ένα μοναδικό αναγνωριστικό που καταγράφει λεπτομέρειες σχετικά με τον συγγραφέα, την ώρα και τη φύση των αλλαγών που έγιναν.

Ξεκινώντας με το Open Source

Σε αυτό το σεμινάριο, θα εξετάσουμε τα βασικά βήματα που θα κάνετε για να κάνετε την πρώτη σας συνεισφορά στο open-source. Θα χρησιμοποιήσουμε το Git ως τοπικό αποθετήριο και το GitHub ως απομακρυσμένο αποθετήριο. Εδώ είναι πώς ξεκινάτε.

1. Επιλέξτε ένα έργο

Προσδιορίστε ένα κατάλληλο έργο για να συνεισφέρετε. Οι δεξιότητες και το πάθος σας να κάνετε τη διαφορά θα καθορίσουν ποιο έργο θα επιλέξετε. Μπορείτε να συνεισφέρετε ένα χαρακτηριστικό, τεκμηρίωση ή δεξιότητες όπως η διαχείριση προϊόντων.

Το σωστό έργο θα έχει μια ενεργή κοινότητα σε κοινωνικά κανάλια όπως το Slack ή το Twitter. Το αποθετήριό του θα πρέπει να έχει τακτικές συνεισφορές και κατάλληλη άδεια χρήσης για λογισμικό ανοιχτού κώδικα.

2. Λάβετε τον Οδηγό Συντελεστών

Κάθε αξιόπιστο έργο ανοιχτού κώδικα θα πρέπει να έχει ένα οδηγός συντελεστών. Ο οδηγός έχει οδηγίες και οδηγίες για να δείξει στους νέους προγραμματιστές πώς να συνεισφέρουν στο έργο.

Θα μάθετε πώς να διαχωρίζετε, να εργάζεστε σε ένα ζήτημα και να υποβάλετε ένα αίτημα έλξης στο αποθετήριο upstream για να επιτρέψετε στους συντηρητές να ελέγξουν τη συνεισφορά σας. Πιθανότατα θα βρείτε τον οδηγό συντελεστών στον ριζικό φάκελο του έργου.

Ο οδηγός συντελεστών θα σας βοηθήσει να κατανοήσετε τη ροή εργασίας του έργου και να μειώσετε τις συγκρούσεις συγχώνευσης. Εάν δεν συμμορφώνεστε με αυτές τις οδηγίες συντελεστών, ένας συντηρητής μπορεί να σας απορρίψει αίτημα έλξης.

Ακολουθεί ένα παράδειγμα οδηγού συντελεστών από το AsyncAPI έργο.

3. Επιλέξτε ένα ζήτημα

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

Πριν ξεκινήσετε να εργάζεστε σε ένα θέμα, πρώτα ρωτήστε ή συζητήστε το θέμα με τους συντηρητές. Μερικές φορές μπορεί να είναι ένα μπαγιάτικο ζήτημα ή ένα θέμα που εργάζεται ήδη άλλος συνεργάτης. Έτσι φαίνεται η ενότητα ζητημάτων στο GitHub:

4. Εργαστείτε για το ζήτημα

Μόλις οι συντηρητές εγκρίνουν το ζήτημα, μπορείτε να δημιουργήσετε ένα διχαλωτό αποθετήριο. Το Forking θα σας μεταφέρει ένα αντίγραφο του γονικού αποθετηρίου στο αποθετήριο σας. Θα κλωνοποιήσετε το αποθετήριο στον τοπικό σας υπολογιστή με το git κλώνος εντολή.

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

5. Υποβάλετε την εργασία σας για έλεγχο

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

  1. Συνδέστε το τοπικό σας αποθετήριο στο upstream αποθετήριο του έργου χρησιμοποιώντας αυτήν την εντολή:
    git remote add upstream https://github.com/{original-owner}/{original-repository}.git
  2. Χρήση git fetch για να πραγματοποιήσετε λήψη των περιεχομένων του ανοδικού κλάδου στο τοπικό σας υποκατάστημα:
    git branch -u upstream/master master
  3. Δημιουργία νέου κλάδου με κλαδί git . Μπορείτε να ελέγξετε εάν ο νέος κλάδος δημιουργείται με κλαδί git εντολή.
  4. Σκηνοθετήστε το κλαδί σας με git προσθήκη και δεσμεύστε το με git δέσμευση -μ.
  5. Σπρώξτε τον κωδικό σας στον κλάδο GitHub με git push origin .
  6. Κάνει μια αίτημα έλξης(PR). Ένα PR ειδοποιεί τους συντηρητές να ελέγξουν το υποκατάστημά σας και να προτείνουν αλλαγές πριν από τη συγχώνευση. Αυτό το διάγραμμα συνοψίζει την όλη διαδικασία.

6. Κριτικές και συγχώνευση

Μετά την υποβολή του PR, οι συντηρητές πιθανότατα θα εξετάσουν και θα προτείνουν αλλαγές. Μπορείτε να κάνετε τοπικές αλλαγές ή διαπράττω τις προτεινόμενες αλλαγές στο απομακρυσμένο αποθετήριο. Το GitHub έχει μια πρόβλεψη για διαπράττω αλλάζει εξ αποστάσεως.

Κατά τη διάρκεια της αξιολόγησης, θα λάβετε σχόλια για τη συνεισφορά σας και μπορείτε να ζητήσετε διευκρινίσεις για ορισμένα θέματα. Ακολουθεί μια απεικόνιση του τρόπου με τον οποίο μπορείτε να πραγματοποιήσετε αλλαγές στο GitHub:

Όταν ολοκληρώσετε τις αλλαγές, κάντε νέες δεσμεύσεις. Το Commits θα ειδοποιήσει τους συντηρητές να επανεξετάσουν την εργασία σας. Εάν περάσουν όλοι οι έλεγχοι, το PR σας θα συγχωνευθεί γρήγορα. Συγχαρητήρια! Μόλις κάνατε την πρώτη σας συνεισφορά σε ένα έργο ανοιχτού κώδικα.

Το Git ενισχύει τη συνεργασία ανοιχτού κώδικα

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

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