Ingineria Sistemelor de Programe

Documentatie suplimentara, ISP, Seria B si SM

View on GitHub

Git: Esențial în Dezvoltarea Software Modernă

Ce este Git?

Git este un sistem de control al versiunilor distribuit, creat de Linus Torvalds în 2005. Este proiectat pentru a gestiona proiecte de orice dimensiune cu viteză și eficiență.

Concepte fundamentale

De ce este Git util?

1. Istoricul complet al modificărilor

2. Lucrul în echipă

3. Ramificație și experimentare

4. Backup și siguranță

Platforme bazate pe Git

Fluxul de lucru tipic cu Git

  1. Clone/Init: Începerea unui proiect nou sau clonarea unuia existent
  2. Branch: Crearea unui branch pentru o funcționalitate nouă
  3. Modificare: Realizarea schimbărilor dorite în cod
  4. Stage: Pregătirea modificărilor pentru commit
  5. Commit: Salvarea modificărilor în repository
  6. Push: Trimiterea modificărilor către repository-ul de la distanță
  7. Pull Request/Merge Request: Solicitarea integrării modificărilor în branch-ul principal
  8. Review: Verificarea codului de către colegii de echipă
  9. Merge: Combinarea modificărilor aprobate în branch-ul principal

Comenzi Git esențiale

# Inițializarea unui repository
git init

# Clonarea unui repository
git clone URL_REPOSITORY

# Verificarea statusului
git status

# Adăugarea modificărilor
git add nume_fisier
git add .  # toate fișierele

# Salvarea modificărilor (commit)
git commit -m "Mesaj descriptiv"

# Crearea unui branch nou
git branch nume_branch
git checkout -b nume_branch  # creare și comutare

# Comutarea între branch-uri
git checkout nume_branch

# Trimiterea modificărilor (push)
git push origin nume_branch

# Preluarea modificărilor (pull)
git pull origin nume_branch

# Combinarea branch-urilor (merge)
git merge nume_branch

Git vs. Alte sisteme de control al versiunilor

Resurse pentru învățare

Workflow Git într-o echipă reală - Scenariu practic

Să considerăm un scenariu concret: o echipă de 5 dezvoltatori lucrează la o aplicație web pentru gestionarea unui magazin online.

Organizarea repository-ului

Scenariu pas cu pas

1. Începutul sprint-ului (perioada de lucru de 2 săptămâni)

2. Ana începe să lucreze la sistemul de coș de cumpărături

# Ana se asigură că are ultima versiune a branch-ului develop
git checkout develop
git pull origin develop

# Ana creează un branch nou pentru funcționalitatea sa
git checkout -b feature/shopping-cart

# Ana lucrează la cod și face commit-uri regulate
git add .
git commit -m "Adaugă structura de bază a coșului"
git add .
git commit -m "Implementează funcția de adăugare produse"

3. Mihai descoperă un bug în sistemul de login

# Mihai creează un branch pentru rezolvarea bug-ului
git checkout develop
git checkout -b bugfix/login-error

# Mihai rezolvă bug-ul și face commit
git add auth-controller.js
git commit -m "Rezolvă eroarea de autentificare la folosirea caracterelor speciale"

# Mihai trimite modificările în repository-ul remote
git push origin bugfix/login-error

4. Mihai creează un Pull Request

5. Ana continuă să lucreze la coșul de cumpărături

git checkout develop
git pull origin develop
git checkout feature/shopping-cart
git merge develop  # Integrează schimbările din develop în branch-ul său
git push origin feature/shopping-cart

6. Ana creează un Pull Request pentru coșul de cumpărături

git add .
git commit -m "Rezolvă problemele identificate în review"
git push origin feature/shopping-cart

7. La mijlocul sprint-ului, echipa face o integrare intermediară

git checkout develop
git pull origin develop
git checkout feature/mea
git merge develop

8. Pregătirea pentru lansare

git checkout develop
git checkout -b release/v1.2

9. Testare finală și lansare

# Integrare în main
git checkout main
git merge release/v1.2
git tag -a v1.2.0 -m "Versiunea 1.2.0"
git push origin main --tags

# Integrare înapoi în develop
git checkout develop
git merge release/v1.2
git push origin develop

10. Începe un nou ciclu

Beneficiile acestui workflow

Concluzie

Git a revoluționat modul în care se dezvoltă software-ul modern, facilitând colaborarea, experimentarea și siguranța codului. Învățarea Git este o investiție esentiala pentru orice student în domeniul IT, reprezentând o abilitate fundamentală solicitată de majoritatea angajatorilor din industra IT.