Πώς να αυτοματοποιήσετε το έργο σας και το Github repo setup από τη γραμμή εντολών

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

Έμαθα κάνοντας έργα (συχνά δωρεάνCodeCamp!). Αλλά έπρεπε να σιγουρευτώ ότι δεν έχασα τη σκληρή δουλειά μου, και ότι άλλοι μπορούσαν να δουν τη σκληρή δουλειά που έβαλα, οπότε κάθε έργο έπρεπε να προχωρήσει στο Github. Όσο πιο ολοκληρωμένα έργα είχα στο Github, τόσο πιο εύκολο θα ήταν για τους προσλήψεις. Αλλά τα βήματα που απαιτούνται για τη δημιουργία ενός έργου, την προετοιμασία ενός repo και τον συγχρονισμό με το Github ήταν πραγματικά ενοχλητικά και επαναλαμβανόμενα, οπότε αποφάσισα να λύσω το πρόβλημα.  

Κακά νέα: δεν πρόκειται να είναι μια μεγάλη, φανταχτερή, λεπτομερή και τεχνικά σέξι ανάρτηση. Θα είναι πολύ σέξι.

Καλά νέα: δεν χρειάζεται να είστε θεός σεναρίου (dess) για να το κάνετε.

Έτσι, η τυπική ροή εργασίας για τη ρύθμιση του έργου μου συνήθως συμβαίνει ως εξής:

1) Μεταβείτε στο ../projectsφάκελό μου   και τρέξτε mkdir project-of-some-nameγια να δημιουργήσετε ένα φάκελο με το όνομα project-of-some-name.

2) cdσε αυτόν τον φάκελο έργου και κάντε git initγια να ξεκινήσετε ένα τοπικό git repo εκεί.

3) τρέξτε touch README.MDγια να δημιουργήσετε το READMEαρχείο, να το ανοίξετε και να προσθέσετε μερικές βασικές περιγραφές, συμπεριλαμβανομένων των συνδέσμων προς τους πόρους / σεμινάρια που εφάρμοσα σε αυτό το έργο. Αποθηκεύστε το αρχείο.

4) τρέξτε git add .και μετάgit commit -m ' ...some initial commit message...

5) ανοίξτε ένα πρόγραμμα περιήγησης, μεταβείτε στο Github, συνδεθείτε, δημιουργήστε ένα νέο (απομακρυσμένο) αποθετήριο, αντιγράψτε το url, επιστρέψτε στο τερματικό μου, βεβαιωθείτε ότι ήμουν στον σωστό φάκελο έργου project-of-some-name... και εκτελέστε τα σενάρια git που απαιτούνται για τη ρύθμιση το απομακρυσμένο repo ως "upstream" repo και συνδέστε το τοπικό μου repo σε αυτό. Τότε, τελικά, μπορώ να τρέξω ένα git pushκαι η τοπική μου δέσμευση θα ωθούσε

6) ξαπλώστε και πάρτε έναν υπνάκο, εξαντλημένο από αυτήν την επαναλαμβανόμενη διαδικασία.

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

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

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

1) Κρατώ τα σενάρια μου στο ριζικό / αρχικό φάκελο, σε έναν υποφάκελο που ονομάζεται scripts. Σας προτείνω να κάνετε το ίδιο ή παρόμοιο. Για να μεταβείτε στον ριζικό / αρχικό φάκελο, πληκτρολογήστε το τερματικό σας cd ~επειδή το tilda ( ~) είναι το σύμβολο για τον αρχικό φάκελο. Στην εφαρμογή Mac Finder εμφανίζεται ως αυτό με το εικονίδιο σπιτιού. Έτσι όλα τα σενάρια μου είναι αποθηκευμένα~/scripts

2) Αυτό έχει σημασία επειδή για να εκτελέσετε ένα σενάριο κελύφους από οποιονδήποτε κατάλογο στο τερματικό, πρέπει να πληκτρολογήσετε την πλήρη διαδρομή. Στην περίπτωσή μου πρέπει να πληκτρολογήσω για ~/scripts/git-script.shνα εκτελέσω το σενάριο. Αλλά προχωράμε μπροστά μας.

3) αντιγράψτε το κομμάτι κώδικα στο κάτω μέρος αυτής της ανάρτησης και, στη συνέχεια, ανοίξτε ένα πρόγραμμα επεξεργασίας κειμένου, επικολλήστε το και, στη συνέχεια, αποθηκεύστε το ως [filename].sh. Η .shείναι η επέκταση για σενάρια κελύφους. Αποθηκεύστε το αρχείο στον κατάλογο στον οποίο θέλετε να το αποθηκεύσετε - και πάλι προτείνω ~/scriptsως φάκελο για να αποθηκεύσετε τα σενάρια σας.

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

5) Κάντε το σενάριο κελύφους εκτελέσιμο. Για να γίνει αυτό θα πληκτρολογήσετε τα ακόλουθα στο τερματικό: chmod +x <>. Αυτός είναι ο unix τρόπος για να κάνετε ένα σενάριο κελύφους "εκτελέσιμο". Δεν είμαι βέβαιος ότι καταλαβαίνω πλήρως τι σημαίνει αυτό, εκτός από αυτό που απαιτείται για να φτιάξετε εκτεταμένα σενάρια shell που γράφετε, οπότε μην με ρωτάτε και δεν θα σας πω ψέματα.

6) μεταβείτε στο φάκελο έργων σας και δημιουργήστε έναν νέο φάκελο στον οποίο σκοπεύετε να στεγάσετε το έργο σας. Αποτελεσματικά, πρέπει να το κάνετε αυτό:   mkdir- δημιουργήστε ένα project-of-some-nameεσωτερικό φάκελο όπου διατηρείτε όλα τα έργα σας. Έτσι το έργο σας θα τοποθετηθεί τελικά μέσα my-computer/my-projects/project-of-some-name. cdσε αυτόν τον φάκελο και στη συνέχεια πληκτρολογήστε pwdγια να λάβετε την πλήρη διαδρομή. Αντιγράψτε το - θα χρειαστεί να το επικολλήσετε σύντομα. Θα πρέπει να μοιάζειmy-computer/my-projects/project-of-some-name

7) ανοίξτε ξανά το τερματικό σας και, στη συνέχεια, πληκτρολογήστε . Το σενάριο τρέχει! Θα καθοδηγηθείτε μέσω ορισμένων εισόδων ... Τα κύρια βήματα είναι:~/scripts/<>

    > τι θέλετε να ονομάσετε το Github repo σας ( μην χρησιμοποιείτε διαστήματα - το "my-awesome-project" είναι καλό. Μην χρησιμοποιείτε το "φοβερό έργο μου" ως όνομα repo.

  > Εισαγάγετε μια περιγραφή που εμφανίζεται στην περιγραφή του Github repo. Για αυτό είναι ασφαλές να χρησιμοποιείτε χώρους.

 > Εισαγάγετε τη διαδρομή του έργου που έχετε στο βήμα 6, αυτή που έχετε μετά την πληκτρολόγηση pwdστο τερματικό και τη λήψη κάτι σανmy-computer/my-projects/project-of-some-name

 > εισαγάγετε το όνομα χρήστη Github (όχι διεύθυνση email) και μετά τον κωδικό πρόσβασης Github. Να είστε προσεκτικοί καθώς πληκτρολογείτε καθώς αυτές οι τιμές δεν εμφανίζονται στην οθόνη.

 > .... αυτό είναι. Το σενάριο θα ρυθμίσει το git repo σας τοπικά μέσα my-computer/my-projects/project-of-some-nameκαι, στη συνέχεια, θα δημιουργήσει ένα README.MD(κενό) και, στη συνέχεια, θα το δεσμεύσει τοπικά, στη συνέχεια θα δημιουργήσει ένα απομακρυσμένο repo στο Github (συνδεθείτε μέσω API) κ.λπ. και, στη συνέχεια, ανεβάστε τα πάντα!

 > τέλος, θα δείτε ότι το τερματικό με το οποίο αλληλεπιδράσατε έχει αλλάξει τον τρέχοντα ενεργό κατάλογο στο φάκελο του έργου σας. Θα είναι τώρα στο my-computer/my-projects/project-of-some-nameκαι μπορείτε να πληκτρολογήσετε lsκαι να δείτε το README.MDαρχείο. Εάν πληκτρολογήσετε git statusτότε θα δείτε την κατάσταση του τοπικού σας repo (την κατάσταση του τοπικού σας έργου) και αν πληκτρολογήσετε git remoteθα σας δείξει τη διεύθυνση URL του Github για το έργο σας!

Εγινε! Καλή κωδικοποίηση!

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

# Make executable with chmod +x <> CURRENTDIR=${pwd} # step 1: name of the remote repo. Enter a SINGLE WORD ..or...separate with hyphens echo "What name do you want to give your remote repo?" read REPO_NAME echo "Enter a repo description: " read DESCRIPTION # step 2: the local project folder path echo "what is the absolute path to your local project directory?" read PROJECT_PATH echo "What is your github username?" read USERNAME # step 3 : go to path cd "$PROJECT_PATH" # step 4: initialise the repo locally, create blank README, add and commit git init touch README.MD git add README.MD git commit -m 'initial commit -setup with .sh script' # step 5 use github API to log the user in curl -u ${USERNAME} //api.github.com/user/repos -d "{\"name\": \"${REPO_NAME}\", \"description\": \"${DESCRIPTION}\"}" # step 6 add the remote github repo to local repo and push git remote add origin //github.com/${USERNAME}/${REPO_NAME}.git git push --set-upstream origin master # step 7 change to your project's root directory. cd "$PROJECT_PATH" echo "Done. Go to //github.com/$USERNAME/$REPO_NAME to see." echo " *** You're now in your project root. ***"

Postscript Για φοιτητές f reeCodeCamp

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

Έχοντας αυτό κατά νου, εάν θέλετε να επενδύσετε 3 ώρες μαζί μου για να βρείτε τη συντομότερη πορεία σας για να μάθετε να κωδικοποιείτε (ειδικά αν είστε επαγγελματίας που αλλάζει την καριέρα, όπως εγώ ...), τότε κατευθυνθείτε στον ιστότοπό μου και χρησιμοποιήστε τη φόρμα εγγραφείτε (όχι το αναδυόμενο παράθυρο!). Εάν προσθέσετε τις λέξεις "ΔΩΡΕΑΝ Ο ΧΡΟΝΟΣ ΜΟΥ" στο μήνυμα, θα ξέρω ότι είστε ένας αναγνώστης του FreeCodeCamp και θα σας στείλω έναν κωδικό προσφοράς, γιατί όπως και εσείς, το freeCodeCamp μου έδωσε μια σταθερή αρχή.

Επίσης, αν θέλετε να μάθετε περισσότερα, ρίξτε μια ματιά στο επεισόδιο 53 του podcast freeCodeCamp, όπου και ο Quincy (ιδρυτής του FreeCodeCamp) και μοιραζόμαστε τις εμπειρίες μας ως αλλαγές σταδιοδρομίας που μπορεί να σας βοηθήσουν στο ταξίδι σας. Μπορείτε επίσης να αποκτήσετε πρόσβαση στο podcast σε iTunes, Stitcher και Spotify.

Μπορώ να επικοινωνήσω μαζί μου στο Twitter: @ZubinPratap