This shows you the differences between two versions of the page.
moby:backend:02 [2020/07/20 17:29] alexandru.hogea [Comenzi utile de Git] |
moby:backend:02 [2020/07/21 11:25] (current) alexandru.hogea [Exercitii] |
||
---|---|---|---|
Line 16: | Line 16: | ||
==== Comenzi utile de Git ==== | ==== Comenzi utile de Git ==== | ||
+ | <code git> | ||
git clone https://gitlab.com/<your_project> - descarca proiectul cu tot istoricul modificarilor | git clone https://gitlab.com/<your_project> - descarca proiectul cu tot istoricul modificarilor | ||
git init - se initializeaza repo-ul local (se creaza folderul .git) | git init - se initializeaza repo-ul local (se creaza folderul .git) | ||
Line 27: | Line 27: | ||
git branch <branch> - creati un nou branch pornind de la commitul pe care va aflati local | git branch <branch> - creati un nou branch pornind de la commitul pe care va aflati local | ||
git branch -d <branch> - stergeti branch-ul specificat | git branch -d <branch> - stergeti branch-ul specificat | ||
- | git push origin <branch> - trimiteti toate commiturile locale de pe un branch catre repo-ul din cloud | + | git push -u origin <branch> - trimiteti toate commiturile locale de pe un branch catre repo-ul din cloud |
git pull origin <branch> - va actualizeaza branch-ul local cu modificarile noi din cloud | git pull origin <branch> - va actualizeaza branch-ul local cu modificarile noi din cloud | ||
git checkout -b origin/<branch> - va mutati pe branch-ul specificat cu modificarile din cloud | git checkout -b origin/<branch> - va mutati pe branch-ul specificat cu modificarile din cloud | ||
Line 38: | Line 38: | ||
git cherry-pick <commit_hash> - va ia toate modificarile de la un anumit commit specificat prin hash-ul sau si le pune pe branch-ul curent | git cherry-pick <commit_hash> - va ia toate modificarile de la un anumit commit specificat prin hash-ul sau si le pune pe branch-ul curent | ||
git rebase -i Head~<N> - cu aceasta comanda puteti transforma ultimele N commituri intr-unul singur, in editorul care se deschite trebuie sa inlocuiti "pick" cu "squash" in afara de prima linie | git rebase -i Head~<N> - cu aceasta comanda puteti transforma ultimele N commituri intr-unul singur, in editorul care se deschite trebuie sa inlocuiti "pick" cu "squash" in afara de prima linie | ||
+ | </code> | ||
==== HTTP Rest API ==== | ==== HTTP Rest API ==== | ||
Line 312: | Line 312: | ||
Pentru a testa un API scris in Node, puteti sa folositi **cURL**, **wget** sau [[https://www.postman.com/|Postman]]. Noi va recomandam Postman, pentru ca ofera multe functionalitati utile, precum variabile de mediu, colectii, scripturi automate, etc... | Pentru a testa un API scris in Node, puteti sa folositi **cURL**, **wget** sau [[https://www.postman.com/|Postman]]. Noi va recomandam Postman, pentru ca ofera multe functionalitati utile, precum variabile de mediu, colectii, scripturi automate, etc... | ||
+ | ===== Exercitii ===== | ||
+ | * Creati-va un **grup** pe [[GitLab|https://gitlab.com/]]. Numiti-l cum vreti. Puteti sa il faceti public sau privat | ||
+ | * Creati-va **5 repository-uri** in grup. 4 repository-uri vor contine cele 4 microservicii si un repository va avea rol de **monorepo**. | ||
+ | <note tip>Un **monorepo** tine referinta catre alte repository-uri. In el se pot stoca si configurari si fisiere de deployment.</note> | ||
+ | * Pe repo-urile destinate microserviciilor protejati-va branchul **master**, incat sa fie accesibil doar prin **merge request**. | ||
+ | <note tip>//Settings// -> //Repository// -> //Protected Branches//</note> | ||
+ | * Creati-va inca un branch, de **test**. Puteti opta sa il protejati, sau nu, depinde de voi. | ||
+ | * Clonati cele 4 repo-uri care vor tine microserviciile, pe calculator | ||
+ | * Creati-va cate un proiect de NodeJS in fiecare repo si instalati urmatoarele pachete: | ||
+ | <code> | ||
+ | express | ||
+ | helmet | ||
+ | morgan | ||
+ | log-timestamp | ||
+ | express-async-errors | ||
+ | http-errors | ||
+ | axios | ||
+ | dotenv | ||
+ | </code> | ||
+ | * Creati, in fiecare repo, fisierul **.gitignore** si puneti **node_modules** in **.gitignore** | ||
+ | * Experimentati, cat mai mult, cu NodeJS si Express. Va recomandam sa creati rute folosind obiectul **[[https://expressjs.com/en/guide/routing.html|Router]]** din cadrul express. |