Πώς να υποβάλετε το πρώτο σας αίτημα έλξης στο GitHub

Τι είναι το πιρούνι;

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

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

Τι είναι ένα αίτημα έλξης;

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

Για παράδειγμα, ένας χρήστης Χάρι διχάζει ένα αποθετήριο του ThanoshanMV και κάνει αλλαγές σε αυτό το αποθετήριο. Τώρα ο Χάρι μπορεί να υποβάλει ένα αίτημα έλξης στο ThanoshanMV, αλλά εναπόκειται στο ThanoshanMV να το αποδεχτεί ή να το απορρίψει. Είναι σαν να λέτε, "ThanoshanMV, παρακαλώ να τραβήξετε τις αλλαγές μου;"

Τι σημαίνει να συνεισφέρετε

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

Όπως λέει ο αρχικός οδηγός hacktitude της εταιρίας πληροφορικής 99xtechnology, μπορούμε να συνεισφέρουμε σε ένα έργο ανοιχτού κώδικα με τους ακόλουθους τρόπους:

  1. Σχεδιασμός: Μπορείτε να δημιουργήσετε τις διατάξεις ενός έργου για να βελτιώσετε τη χρηστικότητά του, να βελτιώσετε την πλοήγηση και το μενού του έργου με βάση ερευνητικά προγράμματα χρηστών, να δημιουργήσετε τέχνη για λογότυπα ή μπλουζάκια και να παρέχετε οδηγούς στυλ για το έργο.
  2. Γράψιμο: Μπορείτε να γράψετε και να βελτιώσετε την τεκμηρίωση του έργου ή να μεταφράσετε την τεκμηρίωση, να ξεκινήσετε ένα ενημερωτικό δελτίο για το έργο ή να γράψετε σεμινάρια για το έργο και να επιμεληθείτε τις καλύτερες στιγμές από τη λίστα αλληλογραφίας ή να επιμεληθείτε έναν φάκελο παραδειγμάτων που δείχνουν πώς χρησιμοποιούνται τα έργα.
  3. Οργάνωση: Μπορείτε να συνδέσετε διπλά ζητήματα, να προτείνετε νέες ετικέτες ζητημάτων, να προτείνετε να κλείσετε παλιά ανοιχτά ζητήματα και να υποβάλετε ερωτήσεις σχετικά με πρόσφατα ανοιχτά θέματα για να προωθήσετε τη συζήτηση.
  4. Βοηθήστε τους άλλους: Απαντήστε σε ερωτήσεις σχετικά με ανοιχτά ζητήματα, ελέγξτε τον κώδικα για τις υποβολές άλλων ατόμων και προσφέρετε να καθοδηγήσετε έναν άλλο συνεισφέροντα.
  5. Κωδικοποίηση: Βοηθήστε στην επίλυση τυχόν ανοιχτών προβλημάτων, ρωτήστε αν μπορείτε να παρέχετε νέες δυνατότητες και να βελτιώσετε τα εργαλεία και τις δοκιμές.

Ας υποβάλουμε το πρώτο μας αίτημα

Εάν δεν είστε πολύ εξοικειωμένοι με το Git & GitHub, ανατρέξτε στον οδηγό για αρχάριους στο Git & GitHub.

1. Πιέστε το αποθετήριο

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

2. Κλωνοποιήστε το αποθετήριο

Μόλις το αποθετήριο βρίσκεται στον λογαριασμό σας, κλωνοποιήστε το στο μηχάνημά σας για να το εργαστείτε τοπικά.

Για κλωνοποίηση, κάντε κλικ στο κουμπί κλώνου και αντιγράψτε τον σύνδεσμο

Ανοίξτε το τερματικό και εκτελέστε την ακόλουθη εντολή. Θα κλωνοποιήσει το αποθετήριο τοπικά.

$ git clone [HTTPS ADDRESS]

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

Πρέπει να μεταβούμε σε αυτόν τον κλωνοποιημένο κατάλογο εκτελώντας αυτήν την εντολή:

$ cd [NAME OF REPOSITORY]

3. Δημιουργήστε ένα υποκατάστημα

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

Το όνομα του υποκαταστήματος πρέπει να είναι σύντομο και πρέπει να αντικατοπτρίζει το έργο που κάνουμε.

Τώρα δημιουργήστε έναν κλάδο χρησιμοποιώντας την git checkoutεντολή:

$ git checkout -b [Branch Name]

4. Κάντε αλλαγές και δεσμεύστε τις

Κάντε σημαντικές αλλαγές στο έργο και αποθηκεύστε το.

Στη συνέχεια εκτελέστε git statusκαι θα δείτε τις αλλαγές.

Προσθέστε αυτές τις αλλαγές στον κλάδο που μόλις δημιουργήσατε χρησιμοποιώντας την git addεντολή:

$ git add .

Τώρα πραγματοποιήστε αυτές τις αλλαγές χρησιμοποιώντας την git commitεντολή:

$ git commit -m "Adding an article to week 02 of articles of the week"

5. Πιέστε τις αλλαγές στο GitHub

Για να προωθήσουμε τις αλλαγές στο GitHub, πρέπει να προσδιορίσουμε το όνομα του τηλεχειριστηρίου.

$ git remote

Για αυτό το αποθετήριο το όνομα του τηλεχειριστηρίου είναι «προέλευση».

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

git push origin [Branch Name]

6. Δημιουργία αιτήματος έλξης

Μεταβείτε στο αποθετήριό σας στο GitHub και θα δείτε ένα κουμπί "Σύγκριση και έλξη αιτήματος" και κάντε κλικ σε αυτό.

Δώστε τις απαραίτητες λεπτομέρειες σχετικά με το τι έχετε κάνει (Μπορείτε να αναφέρετε ζητήματα χρησιμοποιώντας το "#"). Τώρα υποβάλετε το αίτημα έλξης.

Συγχαρητήρια! Υποβάλατε το πρώτο σας αίτημα τραβήγματος.  

Εάν το αίτημα τραβήγματος γίνει αποδεκτό, θα λάβετε ένα email.

7. Συγχρονίστε το διχαλωτό κύριο κλάδο σας

Πριν από την υποβολή αιτημάτων τραβήγματος στο αρχικό αποθετήριο πρέπει να συγχρονίσετε το αποθετήριο σας με το αρχικό αποθετήριο.

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

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

  1. Πρώτα, ελέγξτε σε ποιο υποκατάστημα βρίσκεστε.
$ git branch

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

2. Μεταβείτε στον κύριο κλάδο.

$ git checkout master

3. Προσθέστε το αρχικό αποθετήριο ως εναπόθετο αποθετήριο.

Για να τραβήξετε τις αλλαγές από το αρχικό αποθετήριο στη διχάλα έκδοση σας, θα πρέπει να προσθέσετε το αρχικό αποθετήριο Git ως ανάντη αποθετήριο.

$ git remote add upstream [HTTPS]

Εδώ, το [HTTPS] είναι το URL που πρέπει να αντιγράψετε από το αποθετήριο του κατόχου.

4. Ανακτήστε το αποθετήριο.

Λήψη όλων των αλλαγών από το αρχικό αποθετήριο. Οι δεσμεύσεις στο αρχικό αποθετήριο θα αποθηκευτούν σε ένα τοπικό υποκατάστημα που ονομάζεται upstream / master.

$ git fetch upstream

5. Συγχωνεύστε το.

Συγχώνευση των αλλαγών από το upstream / master στον τοπικό κύριο κλάδο σας. Αυτό θα φέρει τον κύριο κλάδο του πιρουνιού σας σε συγχρονισμό με το αποθετήριο ανάντη χωρίς να χάσετε τις τοπικές σας αλλαγές.

$ git merge upstream/master

6. Πιέστε τις αλλαγές στο GitHub

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

$ git push origin master

ΣΗΜΕΙΩΣΗ: Μετά το συγχρονισμό του διακλαδισμένου κύριου κλάδου, μπορείτε να αφαιρέσετε αυτό το τηλεχειριστήριο εάν θέλετε. Αλλά θα πρέπει επίσης να ενημερώσετε / συγχρονίσετε το αποθετήριο σας στο μέλλον, επομένως είναι βέλτιστη πρακτική να το διατηρήσετε.

$ git remote rm [Remote Name]

8. Διαγράψτε τον περιττό κλάδο

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

$ git branch -d [Branch Name]

Μπορείτε επίσης να διαγράψετε την έκδοση του στο GitHub.

git push origin --delete [Branch Name]

συμπέρασμα

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

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

Μείνετε δυνατοί, μείνετε θετικοί και μην παραιτηθείτε ποτέ.

- Roy T. Bennett, Το Φως στην Καρδιά

Αυτό το άρθρο δημοσιεύτηκε αρχικά στο Medium.

Μπορείτε να επικοινωνήσετε και να συνδεθείτε μαζί μου στο Twitter.

Συνεχίστε να συμβάλλετε στον κόσμο του ανοιχτού κώδικα!