Sådan automatiseres dit projekt og Github repo-opsætning fra kommandolinjen

Dette indlæg kommer ud af en irritation, jeg stod personligt over for, da jeg først lærte at kode - opsætte min lokale repo og synkronisere med Github.

Jeg lærte ved at udføre projekter (ofte freeCodeCamp dem!). Men jeg var nødt til at sikre, at jeg ikke mistede mit hårde arbejde, og at andre kunne se det hårde arbejde, jeg lagde ned, så hvert projekt måtte fortsætte på Github. Jo mere komplette projekter jeg havde på Github, jo lettere ville det være for rekrutterere. Men de nødvendige trin for at oprette et projekt, initialisere en repo og synkronisere med Github var virkelig irriterende og gentagne, så jeg besluttede at løse problemet.  

Dårlige nyheder: dette bliver ikke et stort, fancy, detaljeret og teknisk sexet indlæg. Det bliver meget un-sexet.

Gode ​​nyheder: du behøver ikke være en shell-scripting-gud (dess) for at gøre det.

Så mit typiske projektopsætningsflow fungerer normalt sådan her:

1) Gå til min   ../projectsmappe og kør for mkdir project-of-some-nameat oprette en mappe med navnet project-of-some-name.

2) cdind i den projektmappe og gør for git initat initialisere en lokal git repo derinde.

3) kør for touch README.MDat oprette READMEfilen, åbne den og tilføje nogle grundlæggende beskrivelser, herunder links til de ressourcer / tutorials, jeg implementerede i det projekt. Gem filen.

4) kør git add .og dereftergit commit -m ' ...some initial commit message...

5) åbn en browser, gå til Github, log ind, opret et nyt (eksternt) lager, kopier url'en, vend tilbage til min terminal, sørg for at jeg var i den rigtige projektmappe project-of-some-name... kør derefter de git-scripts, der er nødvendige for at oprette den eksterne repo som 'upstream' repo og forbinde min lokale repo til den. Så endelig kan jeg køre en, git pushog min lokale forpligtelse bliver skubbet op

6) læg dig og tag en lur, udmattet af denne gentagne proces.

Ganske vist var dette min proces, men jeg kunne godt lide at være organiseret og altid være i stand til at få adgang til mine projekter, så jeg kan henvise til dem.

Da automatisering er en fantastisk måde at øve dine kodningsfærdigheder på, besluttede jeg at skrive et lille shell-script, der automatiserer disse forfærdelige og gentagne trin. Manuskriptet er i bunden af ​​dette indlæg, og advares - det er ikke sofistikeret eller fancy. Men det får sikkert jobbet gjort, og jeg behøver ikke at logge ind på Github og narre alle disse trin!

Før du kopierer scriptet, skal du vide, hvordan du kører det på din Mac. Så nedenfor er de trin, du skal implementere for at kunne bruge scriptet til at automatisere din installationsworkflow.

1) Jeg opbevarer mine scripts i min rod / hjemmemappe i en undermappe, der hedder scripts. Jeg foreslår, at du gør det samme eller lignende. For at komme til rod- / hjemmemappen skal du i din terminal type, cd ~fordi tilda ( ~) er symbolet på hjemmemappen. I din Mac Finder-app vises den som den med et husikon. Så alle mine scripts er gemt i~/scripts

2) Dette betyder noget, for at køre et shell-script fra ethvert bibliotek i terminalen, skal du indtaste den fulde sti. I mit tilfælde er jeg nødt til at skrive ud for ~/scripts/git-script.shat køre scriptet. Men vi kommer foran os selv.

3) kopier kodestykket i bunden af ​​dette indlæg, og åbn derefter en teksteditor, indsæt den og gem den som [filename].sh. Det .sher udvidelsen til shell-scripts. Gem filen i den mappe, du vil gemme den i - igen anbefaler jeg ~/scriptssom mappen at gemme dine scripts i.

4) Naviger til den mappe i din terminal. For at være sikker køres lsi terminalen for at kontrollere, at du kan se, at scriptet er der. Hvis det ikke er, er du i den forkerte mappe, eller trin 3 blev ikke fuldført.

5) Gør shell-scriptet eksekverbart. For at gøre, at du skrive følgende i terminalen: chmod +x <>. Dette er den unix måde at gøre et shell-script til "eksekverbart". Jeg er ikke sikker på, at jeg fuldt ud forstår, hvad det betyder, bortset fra at det er nødvendigt for at gøre alle shell-scripts, du skriver, eksekverbare, så spørg ikke mig, så lyver jeg ikke for dig.

6) naviger til din projektmappe, og lav en ny mappe, som du har til hensigt at huse dit projekt. Effektivt skal du gøre dette:   mkdir- Opret en project-of-some-nameinde i mappen, hvor du opbevarer alle dine projekter. Så dit projekt placeres til sidst inde my-computer/my-projects/project-of-some-name. cdi denne mappe, og skriv derefter for pwdat få den fulde sti. Kopier det - du bliver nødt til at indsætte det snart. Det skal se udmy-computer/my-projects/project-of-some-name

7) åbn din terminal igen, og skriv derefter . Scriptet kører! Du vil blive guidet gennem nogle input ... Hovedtrinnene er:~/scripts/<>

    > hvad vil du kalde din Github repo ( brug ikke mellemrum- 'my-awesome-project' er godt. Brug ikke 'my awesome project' som repo navn.

  > Indtast en beskrivelse, der vises i Github repos beskrivelse. Til dette er det sikkert at bruge mellemrum.

 > Indtast projektstien, du fik i trin 6, den, du får efter at have skrevet pwdi terminalen og få noget lignendemy-computer/my-projects/project-of-some-name

 > indtast dit Github-brugernavn (ikke e-mail-adresse) og derefter dit Github-kodeord. Vær forsigtig, når du skriver, da disse værdier ikke vises på skærmen.

 > .... det er det. Scriptet vil oprette din git repo lokalt indeni my-computer/my-projects/project-of-some-nameog derefter oprette en README.MD(blank) og derefter begå den lokalt, derefter oprette en ekstern repo i Github (log dig ind via API) osv. Og skub derefter alt op!

 > endelig vil du se, at den terminal, du interagerede med, har ændret den aktuelt aktive mappe til din projektmappe. Det er nu kl, my-computer/my-projects/project-of-some-nameog du kan skrive lsog se README.MDfilen. Hvis du derefter skriver git status, vil du se din lokale repos status (status for dit lokale projekt), og hvis du skriver git remotedet, vil det vise dig Github-url til dit projekt!

Færdig! Glad kodning!

Annnd ..... endelig ... her er manuskriptet! Jeg har kommenteret hvert trin, så du kan resonnere dig igennem det.

# 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. ***"

Efterskrift For f reeCodeCamp-studerende

Jeg tror virkelig, at dine mest dyrebare ressourcer er din tid, kræfter og penge. Af disse er tiden den vigtigste ressource, fordi de to andre kan fornyes og gendannes. Så hvis du vil bruge tid på noget, skal du sørge for, at det kommer dig tættere på dette mål.

Med det i tankerne, hvis du vil investere 3 timer med mig for at finde din korteste vej til at lære at kode (især hvis du er en karriereveksler, ligesom mig ...), skal du gå til mit kursussted og bruge formularen der tilmelder sig (ikke popup!). Hvis du tilføjer ordene "FRI MIN TID" til meddelelsen, ved jeg, at du er en freeCodeCamp-læser, og jeg sender dig en promo-kode, for ligesom dig gav freeCodeCamp mig en solid start.

Også hvis du gerne vil vide mere, skal du tjekke afsnit 53 af gratisCodeCamp podcasten, hvor Quincy (grundlægger af FreeCodeCamp) og jeg deler vores oplevelser som karriereændringer, der kan hjælpe dig på din rejse. Du kan også få adgang til podcasten på iTunes, Stitcher og Spotify.

Jeg kan kontaktes på Twitter: @ZubinPratap