Această postare iese dintr-o iritare cu care m-am confruntat personal, când învățam prima dată să codez – configurând repo-ul meu local și sincronizându-mă cu Github.

Am învățat făcând proiecte (deseori cele Routech!). Dar trebuia să mă asigur că nu-mi pierd munca grea și că alții pot vedea munca grea pe care o depuneam, așa că fiecare proiect a avut să mergi pe Github. Cu cât aveam mai multe proiecte complete pe Github, cu atât ar fi mai ușor pentru recrutori. Dar pașii necesari pentru configurarea unui proiect, inițializarea unei repo-uri și sincronizarea cu Github au fost foarte enervante și repetitive, așa că am decis să rezolv problema.

Vești proaste: nu va fi o postare mare, elegantă, detaliată și sexy din punct de vedere tehnic. Va fi foarte puțin sexy.

Vești bune: nu este nevoie să fii un zeu de scripting shell (dess) pentru ao face.

Deci, fluxul meu de lucru pentru configurarea proiectului tipic merge de obicei astfel:

1) Accesați-mă ../projects folder și rulați mkdir project-of-some-name pentru a crea un folder cu numele project-of-some-name.

2) cd în acel folder de proiect și faceți git init pentru a inițializa un repo git local acolo.

3) fugi touch README.MD pentru a crea README fișier, deschideți-l și adăugați câteva descrieri de bază, inclusiv linkuri către resursele / tutoriale pe care le implementam în acel proiect. Salvați fișierul.

4) fugi git add . și apoi git commit -m ' ...some initial commit message...

5) deschideți un browser, accesați Github, conectați-vă, creați un nou depozit (la distanță), copiați adresa URL, reveniți la terminalul meu, asigurați-vă că am fost în folderul corect al proiectului project-of-some-name… apoi rulați scripturile git necesare pentru a configura repo la distanță ca repo “în amonte” și conectați repo-ul meu local la acesta. Apoi, în cele din urmă, pot rula un git push iar comisia mea locală ar fi împinsă în sus

6) culcați-vă și luați un pui de somn, epuizat de acest proces repetitiv.

Desigur, acesta a fost procesul meu, dar mi-a plăcut să rămân organizat și să pot accesa întotdeauna proiectele mele, astfel încât să mă pot referi la ele.

Deoarece automatizarea este o modalitate excelentă de a vă exersa abilitățile de codare, am decis să scriu un mic script shell care automatizează acești pași oribili și repetitivi. Scriptul se află în partea de jos a acestui post și fiți avertizat – nu este sofisticat sau elegant. Dar sigur îmi face treaba și nu trebuie să mă conectez la Github și să mă prostesc cu toți acești pași!

Înainte de a copia scriptul, trebuie să știți cum să îl rulați pe Mac. Deci, mai jos sunt pașii pe care trebuie să îi implementați pentru a putea utiliza scriptul pentru a automatiza fluxul de lucru de configurare.

1) Îmi păstrez scripturile în folderul meu root / home, într-un sub-folder numit scripts. Vă sugerez să faceți la fel sau similar. Pentru a ajunge la folderul rădăcină / acasă, în tipul de terminal cd ~ pentru că tilda ( ~ ) este simbolul pentru folderul de start. În aplicația dvs. Mac Finder apare ca cea cu pictograma casei. Deci, toate scripturile mele sunt stocate în ~/scripts

2) Acest lucru contează deoarece pentru a rula un script shell din orice director din terminal, trebuie să tastați calea completă. În cazul meu trebuie să scriu ~/scripts/git-script.sh pentru a rula scriptul. Dar ne depășim.

3) copiați fragmentul de cod din partea de jos a acestei postări și apoi deschideți un editor de text, lipiți-l și apoi salvați-l ca [filename].sh. .sh este extensia pentru scripturile shell. Salvați fișierul în directorul în care doriți să îl salvați – vă recomand din nou ~/scripts ca folder în care să vă salvați scripturile.

4) Navigați la acel folder din terminalul dvs. Pentru a fi condus în siguranță ls în terminal pentru a verifica dacă puteți vedea că scriptul este acolo. Dacă nu este, sunteți într-un dosar greșit sau pasul 3 nu a fost finalizat cu succes.

5) Faceți scriptul shell executabil. Pentru aceasta, tastați următoarele în terminal: chmod +x <<the-correct-filename.sh>>. Acesta este modul unix de a face un script shell “executabil”. Nu sunt sigur că înțeleg pe deplin ce înseamnă asta, în afară de faptul că este necesar pentru a face executabile orice scripturi shell pe care le scrieți, așa că nu mă întrebați și nu vă voi minți.

6) navigați la folderul proiectelor dvs. și creați un folder nou pe care intenționați să îl găzduiți. Efectiv, trebuie să faceți acest lucru: mkdir – creeaza o project-of-some-name în dosarul în care vă păstrați toate proiectele. Deci proiectul dvs. va fi în cele din urmă plasat în interior my-computer/my-projects/project-of-some-name. cd în acest folder și apoi tastați pwd pentru a obține calea completă. Copiați – va trebui să-l lipiți în scurt timp. Ar trebui să arate ca. my-computer/my-projects/project-of-some-name

7) deschideți din nou terminalul, apoi tastați ~/scripts/<<the-correct-filename.sh>>. Scriptul rulează! Veți fi ghidați prin câteva informații … Pașii principali sunt:
> ce doriți să numiți repo Github (nu folosiți spații- „proiectul-minunat” este bun. Nu utilizați „proiectul meu minunat” ca nume de repo.

> Introduceți o descriere care apare în descrierea repo Github. Pentru aceasta este sigur să folosiți spații.

> Introduceți calea proiectului pe care ați obținut-o la pasul 6, cea pe care o obțineți după tastare pwd în terminal și primind ceva de genul my-computer/my-projects/project-of-some-name

> introduceți numele dvs. de utilizator Github (nu adresa de e-mail) și apoi parola Github. Aveți grijă când tastați, deoarece aceste valori nu apar pe ecran.

> …. atât. Scriptul va configura git repo local în interior my-computer/my-projects/project-of-some-name și apoi creați un README.MD (gol) și apoi comiteți-l local, apoi configurați o repo la distanță în Github (conectați-vă prin API) etc. și apoi împingeți totul în sus!

> în cele din urmă, veți vedea că terminalul cu care interacționați a schimbat directorul activ curent în folderul dvs. de proiect. Acum va fi la my-computer/my-projects/project-of-some-name și puteți introduce ls și vezi README.MD fişier. Dacă apoi tastați git status veți vedea starea repo localului (starea proiectului dvs. local) și dacă introduceți git remote vă va arăta adresa URL Github pentru proiectul dvs.!

Terminat! Codificare fericită!

Annnd ….. în sfârșit …… iată scenariul! Am comentat fiecare pas, astfel încât să vă puteți explica motivul.

# Make executable with chmod +x <<filename.sh>>

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} https://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 https://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 https://github.com/$USERNAME/$REPO_NAME to see." 
echo " *** You're now in your project root. ***"

Postscript Pentru fstudenți reeCodeCamp

Cred cu adevărat că cele mai prețioase resurse sunt timpul, efortul și banii tăi. Dintre acestea, cea mai importantă resursă este timpul, deoarece celelalte două pot fi reînnoite și recuperate. Deci, dacă veți petrece timp pe ceva, asigurați-vă că vă apropie de acest obiectiv.

Având în vedere acest lucru, dacă doriți să investiți 3 ore cu mine pentru a găsi cea mai scurtă cale către învățarea codării (mai ales dacă sunteți un schimbător de carieră, ca mine …), atunci mergeți la site-ul cursului meu și utilizați formularul de acolo, înscrieți-vă (nu popup-ul!). Dacă adăugați cuvintele „FREE MY TIME” la mesaj, voi ști că sunteți un cititor Routech și vă voi trimite un cod promoțional, deoarece la fel ca dvs., Routech mi-a dat un început solid.

De asemenea dacă doriți să aflați mai multe, verificați episodul 53 din podcast Routech, unde Quincy (fondatorul FreeCodeCamp) și cu mine împărtășim experiențele noastre ca schimbări de carieră care vă pot ajuta în călătoria dvs. De asemenea, puteți accesa podcastul pe iTunes, Stitcher, și Spotify.

Pot fi contactat pe Twitter: @ZubinPratap