Documente Academic
Documente Profesional
Documente Cultură
GIT Essential
1|P a ge
Cuprins
Cuprins .................................................................................................................. 1
Termeni tehnici .................................................................................................... 3
1. Versionarea ...................................................................................................... 4
2.Tool-uri de care avem nevoie ........................................................................... 6
3. Crearea primului repository si clonarea lui.................................................... 7
4. Flow-urile principale in GIT ............................................................................. 8
5. Rezolvarea Conflictelor ................................................................................... 9
6. Branch-uri .......................................................................................................11
7. Merge ..............................................................................................................12
8. GIT Stash ........................................................................................................13
9. GIT Ignore .......................................................................................................14
10. GIT Discard ...................................................................................................16
11. Checkout la un Commit vechi .....................................................................17
Contact................................................................................................................18
2|P a ge
Termeni tehnici
Repository - Container unde se stocheaza fisierele unui proiect
Branch - O ramura diferita de dezvoltare
Commit - Salvarea modificarilor in Repository-ul Local
Push - Salvarea modificarilor in Repository-ul Remote
Pull - Aducerea modificarilor din Repository-ul Remote in cel Local
Merge - Incorporarea modificarilor din 2 Branch-uri intr-unul singur
3|P a ge
1. Versionarea
GIT este un sistem de versionare al codului. Dar ce inseamna asta mai exact? E
simplu, folosind acest sistem un programator sau o intreaga echipa pot sa tina un
registru exact al fiecarei schimbari din codul proiectului lor. Poti de asemenea sa te
intorci la oricare versiune de cod din trecut daca e nevoie.
4|P a ge
In acest moment GIT este o tehnologie folosita in aproape toate companiile de IT
fiind independenta de codul pe care il scriu echipele de programare. Fie ca dezvolta
aplicatii mobile sau web, scrise in Java, Python sau pur si simplu in HTML si CSS,
GIT-ul este ceva ce nu trebuie sa lipseasca din CV-ul nici unui IT-ist.
5|P a ge
2.Tool-uri de care avem nevoie
In primul rand e nevoie sa instalam GIT-ul (sistemul de versionare) pe calculatorul
nostru. E bine ca dupa instalare sa dam si un restart calculatorului nostru pentru a
ne asigura ca totate setarile s-au facut corect.
Link: https://git-scm.com/
Ultimul pas este acela de a crea un cont pe GitHub unde vom avea Repository-ul
Remote, adica acel container in care vom avea un back-ul al codului nostru.
Link: https://github.com/
6|P a ge
3. Crearea primului repository si
clonarea lui
Un repository este un container in care vom tine un proiect. Acel repository poate
sa fie LOCAL daca se afla pe calculatorul nostru sau REMOTE daca se afla pe
GitHub, BitBucket sau alte servere asemanatoare.
Primul pas este ca creem un repository nou pe GitHub. Il vom face PRIVAT, adica
disponibil doar pentru noi. Dupa ce am creat acest repository va trebui sa il clonam
pe calculatorul nostru. Inainte de a-l clona trebuie sa ne asiguram ca avem o
legatura securizata intre PC si GitHub. Pentru aceasta legatura folosim niste chei
SSH.
Secure Shell (SSH) este un protocol securizat care asigura transferul de fisiere
intre dispozitive. Aceste chei sunt practic niste “parole” care doar impreuna pot sa
ofere acces. Avem o cheie publica, pe care o putem da oricui (in cazul nostru o dam
GitHub-ului) si o cheie privata pe care o pastram doar noi (secret).
7|P a ge
4. Flow-urile principale in GIT
Atunci cand folosim GIT-ul, cel mai des vom aplica 2 flow-uri principale.
8|P a ge
5. Rezolvarea Conflictelor
Se intampla uneori ca 2 persoane sa lucreze in acelasi timp in acelasi fisier si
poate chiar la aceeasi linie de cod. In cazul acesta a doua persoana care va da un
Push la codul sau catre GitHub va primi o eroare care este de fapt un conflict in
cod. De obicei aceste conflicte apar rar si sunt cauzate de lipsa de comunicare
dintre membrii echipei.
1. <<<<<<< HEAD
2. <a href=”http://www.google.com”>Gole</a>
3. =======
4. <a href=””>Google</a>
5. >>>>>>> branch-a
9|P a ge
Rezultatul final al acestui merge va fi o singura linie de cod. Obervati ca am sters
complet liniile 1, 3 si 5 lucru pe care trebuie sa il facem la fiecare conflict. Acestea
au rolul de a demarca codul celor 2 persoane care au generat conflictul.
1. <a href=”http://www.google.com”>Google</a>
10 | P a g e
6. Branch-uri
In momentul in care incepem lucrul la un proiect este bine sa organizam putin ce
se intampla in GIT. Pentru asta va fi nevoie de cateva branch-uri de lucru. Un
branch este o ramura secundara de deszvoltare a proiectului.
Este recomandat ca fiecare functionaliate noua sau bug mai important sa fie facut
pe un branch nou. Acolo sa fie facuta implementarea completa si testarea, iar apoi
acel Branch secundar se poate aduce in Branch-ul principal (in cazul nostru
master).
11 | P a g e
7. Merge
In momentul in care decidem ca am terminat munca la o functionalitate noua si
aceasta este stabila si testata putem sa o aducem in Branch-ul principal (in cazul
nostru master).
Prin merge aducem practic tot codul la care am lucrat intr-un Branch secundar in
Branch-ul principal (in cazul nostru master).
12 | P a g e
8. GIT Stash
Prin Stashing putem sa stocam temporar modificarile pe care le-am facut in codul
nostru fara sa le adaugam intr-un Branch sau sa le trimitem in Repository-ul
Remote.
13 | P a g e
9. GIT Ignore
Prin Ignore putem specifica ce fisiere sa nu fie vizibile pentru sistemul GIT. In acest
fel putem avea in folderul proiectului nostru fisiere pe care sa le modificam, iar
acest modificari sa nu fie vizibile in momentul unui Commit.
In momentul in care folosim Ignore pentru prima data, in folderul proiectului nostru
va fi creat un fisier nou cu numele .gitignore in care vom avea specificate fisierele
pe care le ignoram. In acest fisier putem sa specificam si anumite patter-uri prin
care sa ignoram mai multe fisiere care au parti din nume sau extensii in comun.
Exemple de pattern-uri:
Pattern Descriere
14 | P a g e
*.log Ignora toate fisierele care au extensia .log cu exceptia
!important.log fisierelor cu numele important.log
15 | P a g e
10. GIT Discard
Discard este comanda prin care renuntam la modificarile facute intr-un
fisier sau grup de fisiere de la ultimul Commit si pana in prezent. E ca o
resetare a codului in acele fisiere.
16 | P a g e
11. Checkout la un Commit vechi
In orice moment ne putem intoarece la un Commit mai vechi avand tot istoricul
GIT-ului in SourceTree. Ca sa ne intoarcem la o versiune mai veche din codul nostre
pur si simplu trebuie sa dam dublu click pe mesajul Commit-ului in panoul central.
17 | P a g e
Contact
Pentru orice intrebare sau nelamurire te rog sa ma contactezi folosind
email-ul radhoovlogs@gmail.com.
Youtube: YouTube.com/VlogDeIT
Blog: BlogDeIT.ro
Facebook: Facebook.com/VlogDeIT
18 | P a g e