This shows you the differences between two versions of the page.
so:teme:folosire-gitlab [2019/02/25 10:17] mbarbulescu [Mic tutorial de folosire git] |
so:teme:folosire-gitlab [2022/03/11 20:00] (current) ionut.mihalache1506 |
||
---|---|---|---|
Line 78: | Line 78: | ||
- Adăugați URL-ul specific repo-ului de teme de SO ce va conține scheletele de cod pentru fiecare temă și testele: | - Adăugați URL-ul specific repo-ului de teme de SO ce va conține scheletele de cod pentru fiecare temă și testele: | ||
- click pe ''Import existing repository by URL'' | - click pe ''Import existing repository by URL'' | ||
- | - adăugați link-ul https://github.com/systems-cs-pub-ro/so-assignments.git | + | - adăugați link-ul https://github.com/systems-cs-pub-ro/so.git |
+ | - în directorul assignments vor fi toate fișierele de care aveți nevoie | ||
- Click ''Create project''. | - Click ''Create project''. | ||
- După ce proiectul a fost creat, selectați tab-ul ''Members'' din cadrul acestui proiect (left side) | - După ce proiectul a fost creat, selectați tab-ul ''Members'' din cadrul acestui proiect (left side) | ||
- | - adăugați următorii useri: Mihai Bărbulescu (3172), Adrian Șendroiu (1701), Răzvan Tudor Crainea, Vladimir Diaconescu, Costin Lupu, Iustin Dumitrescu, Alexandru Jercăianu, George Muraru, Alex Morega, Bogdan Purcăreață (2086) | + | <hidden>- adăugați useri corespunzători: Mihai Bărbulescu (3172), Adrian Șendroiu (1701), Răzvan Tudor Crainea, George Muraru, Adrian-Mirel LUŢAN, Gabriel BERCARU (78505), Ionuț MIHALACHE (87724)</hidden> |
- | - dați-le dreptul de access ''Reporter'' | + | - adăugați useri corespunzători(cineva din subechipa de teme pe baza username-ului de pe Microsoft Teams) |
+ | - dați-le dreptul de access ''Maintainer'' | ||
- click pe ''Add users to project'' | - click pe ''Add users to project'' | ||
Line 97: | Line 99: | ||
Dacă aveți doar 1-multi în acest repo, pentru a adăuga 2-minishell puteți proceda astfel: | Dacă aveți doar 1-multi în acest repo, pentru a adăuga 2-minishell puteți proceda astfel: | ||
- | <code> | + | <code bash> |
- | $ git clone ... | + | git clone ... |
- | $ cd l3-so-assignments | + | cd l3-so-assignments |
- | $ mkdir -p 2-minishell/ | + | mkdir -p 2-minishell/ |
- | $ cd 2-minishell/ | + | cd 2-minishell/ |
- | $ wget http://ocw.cs.pub.ro/courses/_media/so/teme/2-skel-linux.zip | + | wget http://ocw.cs.pub.ro/courses/_media/so/teme/2-skel-linux.zip |
- | $ unzip 2-skel-linux.zip | + | unzip 2-skel-linux.zip |
- | $ rm -fr 2-skel-linux.zip | + | rm -fr 2-skel-linux.zip |
- | $ wget http://elf.cs.pub.ro/so/res/teme/tema2-checker-lin.zip | + | wget http://elf.cs.pub.ro/so/res/teme/tema2-checker-lin.zip |
- | $ unzip tema2-checker-lin.zip # testele sunt dezarhivate în folderul tema2-checker-lin/ | + | unzip tema2-checker-lin.zip # testele sunt dezarhivate în folderul tema2-checker-lin/ |
- | $ rm -fr tema2-checker-lin.zip | + | rm -fr tema2-checker-lin.zip |
- | $ mkdir checker-lin | + | mkdir checker-lin |
- | $ mv tema2-checker-lin/* checker-lin/ | + | mv tema2-checker-lin/* checker-lin/ |
- | $ rmdir tema2-checker-lin | + | rmdir tema2-checker-lin |
- | $ cd ../ | + | cd ../ |
- | $ git add 2-minishell/ | + | git add 2-minishell/ |
- | $ git commit -m "add Linux skeleton and tests" | + | git commit -m "add Linux skeleton and tests" |
- | $ git push | + | git push |
</code> | </code> | ||
Line 186: | Line 188: | ||
Este important să setăm numele și email-ul nostru în git deoarece fiecare commit va conține aceste informații. Pentru a face acest lucru urmărim următorii pași: | Este important să setăm numele și email-ul nostru în git deoarece fiecare commit va conține aceste informații. Pentru a face acest lucru urmărim următorii pași: | ||
- | <code> | + | <code bash> |
- | $ git config --global user.name "Mr. Perfect" | + | student@vagrant:~$ git config --global user.name "Mr. Perfect" |
- | $ git config --global user.email mr@perfect.com | + | student@vagrant:~$ git config --global user.email mr@perfect.com |
</code> | </code> | ||
Line 195: | Line 197: | ||
=== Simple tutorial === | === Simple tutorial === | ||
- | Acum că avem numele și email-ul setate, putem trece mai departe. Primul pas în lucrul cum git este să inițializăm un repository local în directorul în care vom păstra toate fișierele din temă. | + | Acum că avem numele și email-ul setate, putem trece mai departe. Primul pas în lucrul cu git este să inițializăm un repository local în directorul în care vom păstra toate fișierele din temă. |
- | <code> | + | <code bash> |
- | $ git init | + | student@vagrant:~$ git init |
</code> | </code> | ||
Vrem să asociem repository-ul nostru local cu unul pe server. Fie că folosim Gitlab, Github, Bitbucket sau orice altă variantă, pașii de urmat sunt neschimbați. Repository-ul precizat trebuie să existe de dinainte. | Vrem să asociem repository-ul nostru local cu unul pe server. Fie că folosim Gitlab, Github, Bitbucket sau orice altă variantă, pașii de urmat sunt neschimbați. Repository-ul precizat trebuie să existe de dinainte. | ||
- | <code> | + | <code bash> |
- | $ git remote add origin link_to_online_repo | + | student@vagrant:~$ git remote add origin link_to_online_repo |
</code> | </code> | ||
Line 213: | Line 215: | ||
După ce am terminat de editat fișierul, îl adăugăm în repository folosind comanda ''add''. E util ca fiecare schimbare pe care o comitem să fie asociată cu un mesaj **scurt și la obiect** pentru a ști ulterior **exact** ce schimbare a fost produsă cu acel commit. | După ce am terminat de editat fișierul, îl adăugăm în repository folosind comanda ''add''. E util ca fiecare schimbare pe care o comitem să fie asociată cu un mesaj **scurt și la obiect** pentru a ști ulterior **exact** ce schimbare a fost produsă cu acel commit. | ||
- | <code> | + | <code bash> |
- | $ touch .gitignore | + | student@vagrant:~$ touch .gitignore |
- | + | # evităm adăugarea fișierelor obiect | |
- | $ echo "*.o" >> .gitignore # evităm adăugarea fișierelor obiect | + | student@vagrant:~$ echo "*.o" >> .gitignore |
- | + | student@vagrant:~$ git add .gitignore | |
- | $ git add .gitignore | + | student@vagrant:~$ git commit -m "added .gitignore file to repo" |
- | + | ||
- | $ git commit -m "added .gitignore file to repo" | + | |
</code> | </code> | ||
Pentru a publica schimbările locale și pe server, folosim comanda ''push''. | Pentru a publica schimbările locale și pe server, folosim comanda ''push''. | ||
- | <code> | + | <code bash> |
- | $ git push origin master | + | student@vagrant:~$ git push origin master |
</code> | </code> | ||
Line 246: | Line 246: | ||
Este bine ca după fiecare pas enumerat să salvăm versiunea de cod din mai multe motive: | Este bine ca după fiecare pas enumerat să salvăm versiunea de cod din mai multe motive: | ||
- | - putem, din neatenție, oboseală sau grabă, să stricăm ce avem până în momentul de față și să ne vină prea greu să revenim la varianta bună de cod | + | - Putem, din neatenție, oboseală sau grabă, să stricăm ce avem până în momentul de față și să ne vină prea greu să revenim la varianta bună de cod |
- | - organizare mai bună | + | - Organizare mai bună |
- | - *În cazul lucrului în echipă*: se poate vedea cine a făcut o anumită modificare a codului | + | - **În cazul lucrului în echipă**: se poate vedea cine a făcut o anumită modificare a codului |
Așadar, după fiecare pas trebuie să publicăm schimbările. Vom folosi următoarele comenzi: | Așadar, după fiecare pas trebuie să publicăm schimbările. Vom folosi următoarele comenzi: | ||
- | <code> | + | <code bash> |
- | $ git add changed_file1 changed_file2 # toate fișierele modificate | + | # toate fișierele modificate |
- | $ git commit -m "first 5 tests working" # să zicem că am trecut de primele 5 teste | + | student@vagrant:~$ git add changed_file1 changed_file2 |
- | $ git push origin master | + | # să zicem că am trecut de primele 5 teste |
+ | student@vagrant:~$ git commit -m "first 5 tests working" | ||
+ | student@vagrant:~$ git push origin master | ||
</code> | </code> | ||
Line 262: | Line 264: | ||
Am continuat cu rezolvarea temei și mi-am dat seama că ceva nu e în regulă și aș vrea să revin la o versiunea în care mergeau doar primele 5 teste. Vom folosim mai întâi comanda git log | Am continuat cu rezolvarea temei și mi-am dat seama că ceva nu e în regulă și aș vrea să revin la o versiunea în care mergeau doar primele 5 teste. Vom folosim mai întâi comanda git log | ||
- | <code> | + | <code bash> |
- | $ git log | + | student@vagrant:~$ git log |
commit ca82a6dff817ec66f44342007202690a93763949 | commit ca82a6dff817ec66f44342007202690a93763949 | ||
Author: Mr. Perfect <mr@perfect.com> | Author: Mr. Perfect <mr@perfect.com> | ||
Line 296: | Line 298: | ||
Pentru a ne întoarce la această variantă folosim comanda: | Pentru a ne întoarce la această variantă folosim comanda: | ||
- | <code> | + | <code bash> |
- | $ git revert ca82a6dff817ec66f44342007202690a93763969 | + | student@vagrant:~$ git revert ca82a6dff817ec66f44342007202690a93763969 |
</code> | </code> | ||