Ce este GIT?
Git este un sistem ce tine evidenta schimbarilor din fisere in cadrul oricarui proiect. Imi aduc aminte cand eram la liceu si trebuia sa fac referate pentru diferite materii. De fiecare data mai schimbam cateceva, iar daca denumirea fisierului era ceva de genul „referat.pdf” la final, inainte sa il prezint clasei avea denumirea „referat_copy_2_final_final.pdf”.
Git vine in ajutor atunci cand mai multi programatori lucreaza asupra unui proiect. Spre exemplu la platforma de info, cand eu si Robert lucram, modificarile noastre se vor imbina perfect la final deoarece folosim Git. Putem sa urmarim foarte usor ce modificari a facut fiecare autor, si ce fisiere au fost afectate.
Instalarea
Pentru a instala git trebuie sa intrarti pe Git – Downloads si sa selectati sistemul vostru de operare. Iar dupa ce ati instalat git, toate interactiuniile cu acesta se vor desfasura prin intermediul consolei (respectiv Terminat pe Mac/Linux sau Command Prompt pe Windows).
Configurarea
Urmatorul lucru ce trebuie facut dupa ce ati instalat git este sa configurati numele si adresa voastra de e-mail. Puteti face asta foarte usor folosind
git config –global user.name „Numele meu”
git config –global user.email „[email protected]”
Aceste variabile – numele si adresa de email sunt folosite pentru a trackui ce modificari realizeaza userul curent.
Repositories
Unul dintre primii termeni ce trebuie sa ii cunoastem in momentul cand lucram cu git este „repository” sau „repo” pe scurt. Practic repo-ul este un container care stocheaza toate modificarile ce se intampla in proiect. In general orice proiect are un singur repo, dar am mai intalnit prin comapanii repo-uri care contin chiar si 5 proiecte.
Acum, putem identifica 2 tipuri majore de repositories:
- Local repos – sunt repo-urile stocate la tine pe calculator
- Remote repos – sunt containere stocate in general pe internet, containere ce pot fi accesate de orice membru din echipa
Pentru a creea un nou repo trebuie sa scriem in Terminal: git init – si vom observa faptul ca un nou folder cu denumirea .git a aparut in folderul nostru. In acest folder se afla practic tot ceea ce git stocheaza. Daca dorim sa eliminam git din proiectul nostru tot ceea ce trebuie sa facem este sa stergem folderul .git
Commits
Urmatorul termen foarte folosit este „commit”-ul. Aceste commit-uri ni le putem imagina ca o lista simplu inlantuita, deoarece fiecare commit stocheaza fisierele modificate dar si commit-urile parinte (adica acele commit-uri care au fost creeate inainte).
git status
Una dintre cele mai utilizate comenzi este git status. Cu ajutorul acestei comenzi verificam care este statusul curent al repo-ului, iar din cate puteti observa vom primii mesajul „nothing to commit” deoarece nu am creeat nici un fisier in proiect momentan.
Asa ca haideti sa facem un fisier nou ce se va numii fisier.cpp .
git add
Inainte de a publica orice modificare pe git va trebuii sa urmam doi pasi de fiecare data. Primul pas este git add – cu ajutorul acestei comenzi vom plasa fisierul (sau fisierele) intr-o zona „temporara”. Pentru a adauga un singur fisier vom scrie git add denumire-fisier sau git add . pentru a adauga toate fisierele in „zona temporara”.
Acum daca rulam din nou git status vom observa faptul ca avem fisierul sub sectiunea „changes to be commited”.
git commit
Acum ca am adaugat fisierul in zona temporara trebuie sa formam noul commit. In general sfatul meu este sa faceti cat mai multe commit-uri pentru a putea urmarii mai usor schimbarile in cadrul unui proiect. Dar pentru ca acesta este un tutorial de inceput, vom avea un commit un singur fisier momentan, fisierul fisier.cpp .
Comanda pentru a publica un commit este git commit -m „Descrierea modificarilor” . Atentie: este foarte important ca mesajul ce il puneti dupa flag-ul -m sa fie un mesaj cat mai descriptiv, practic acest mesaj joaca rolul unui „rezumat” a tot ceea ce a fost modificat.
Iar acum daca ar fi sa rulam comanda git status, putem observa faptul ca nu mai avem nici o modificare.
git log
Inca o comanda foarte utila este git log – cu ajutorul acestei comenzi poti sa vezi toate modificarile ce au fost facute de alti utilizatori asupra repository-ului.
Branches
Urmatoarea notiune importanta sunt branch-urile – acestea joaca rolul unor „universe paralele”. Deoarece echipe multiple lucreaza in acelasi timp asupra unui proiect, procesul de dezvoltare este neliniar, iar asta poate aduce cateva batai de cap daca nu folosim branch-urile. Recomandarea mea este sa creeati un branch nou de fiecare data cand vreti sa modificati ceva asupra unui proiect.
Pentru a creea un branch nou vom folosii comanda git branch denumire – iar aici denumirea trebuie sa fie cat mai semnificativa. De exemplu acum daca vreau sa lucrez la platforma asupra sistemului de certificate voi creea un branch nou numit „certificate-modificari”.
Principalul branch pe care se desfasoara activitatea se numeste de obicei „master„, dar in ultimii ani si-a schimbat denumirea in „main„.
git checkout
Pentru a schimba branch-urile trebuie sa rulam comanda git checkout denumire-branch iar cu ajutorul acestei comenzi trecem intr-un alt branch in care fisierele pot sa fie diferite fata de fisierele ce le aveam in branch-ul curent.
git branch
Pentru a lista toate branch-urile din cadrul unui proiect vom rula comanda git branch si ni se vor afisa mai multe randuri cu toate branch-urile disponibile in acest moment in repo-ul nostru.