Curs: Git și GitHub (GitLab etc.)

Material complet (teorie + practică): ce este Git, cum a apărut, workflow local, branch-uri, repo remote (GitHub/GitLab), comenzi uzuale și pași de laborator pentru un proiect real.

Nivel: începător → intermediar Durata recomandată: 2–4 ore (cu practică) Format: lecție + lucrare practică
Notă: în unele proiecte moderne branch-ul principal este main, nu master.

Legendă rapidă

Comenzile rămân în engleză și se rulează în terminal (Git Bash / Terminal). Exemplele folosesc origin ca remote și master sau main ca branch principal.

Idee-cheie: Git = tehnologia de versionare. GitHub/GitLab = platforma remote + colaborare.

Scop

  • să explici ce este Git și de ce se folosește;
  • să creezi și să gestionezi un repo local (commit, istoric, branch-uri, merge);
  • să conectezi un repo local la un repo remote (GitHub/GitLab) și să lucrezi cu push/pull;
  • să rezolvi cele mai comune erori de autentificare și configurare.

1) Teorie esențială

1.1 Ce este Git

Git este un sistem de control al versiunilor (VCS) distribuit. Păstrează istoricul modificărilor, permite revenirea la versiuni anterioare și susține lucrul în echipă.

1.2 Repozitoriu local: cele 3 zone (workflow)

  • Working directory – unde editezi fișierele
  • Staging area (index) – unde selectezi ce intră în următorul commit
  • Repository (.git) – istoricul commit-urilor local

1.3 Ce este GitHub (și GitLab)

Platforme care găzduiesc repo-uri Git la distanță (remote) și adaugă colaborare: issues, pull/merge requests, code review, CI/CD, wiki, management de proiect.

2) Configurare inițială

2.1 Instalare Git

Instalează Git: git-scm.com/downloads (pe Windows ai și Git Bash).

2.2 Setare identitate

git config --global user.name "Nume Prenume"
git config --global user.email "[email protected]"
git config --list

3) Comenzi esențiale (șpargalkă)

3.1 Setare și configurare

ComandăDescriere
git config --global user.name "Имя"Setează numele utilizatorului
git config --global user.email "email"Setează email-ul utilizatorului
git config --listAfișează toate setările
git config --global core.editor "editor"Setează editorul implicit

3.2 Creare și clonare repo-uri

ComandăDescriere
git initCreează un repo local nou
git clone <url>Clonează un repo remote
git remote add origin <url>Adaugă un remote (de obicei origin)
git remote -vAfișează lista remote-urilor

3.3 Workflow de bază

ComandăDescriere
git statusAfișează starea directorului de lucru
git add <file>Adaugă fișierul în staging
git add .Adaugă toate modificările în staging
git commit -m "Сообщение"Creează un commit
git commit --amendModifică ultimul commit (atenție în echipă)
Atenție: evită git push --force într-un repo de echipă fără reguli clare.

4) Lucrare practică: proiect local → GitHub

4.1 Repo local

cd c:/xampp/htdocs/proiect-git
git init
git status

4.2 Primul commit

git add .
git commit -m "first commit"

4.3 .gitignore

git status
git add .
git commit -m "gitignorecommit"

4.4 Branch + merge (exercițiu)

git branch ramura1
git checkout ramura1
# creezi text.txt
git add text.txt
git commit -m "Add text.txt"

git checkout master
git merge ramura1
git branch -D ramura1

5) Repo remote: conectare și sincronizare

5.1 Conectare remote

git remote add origin <url>
git remote -v

5.2 Push

git push -u origin master

5.3 Clone și pull

git clone https://github.com/laravel/laravel.git
git pull

6) Autentificare & erori frecvente

6.1 SSH: Permission denied (publickey)

ssh-keygen

Adaugi cheia publică (id_rsa.pub) în GitHub: Settings → SSH and GPG keys → New SSH key.

6.2 Credite/conflicte pe Windows

În caz de conflicte, verifică Credential Manager și elimină credențialele vechi pentru GitHub/GitLab.

7) Bune practici

  1. Mesaje de commit clare: Add ..., Fix ...
  2. Branch per feature: feature/auth, bugfix/header
  3. Commit-uri atomice
  4. Înainte de push: git status, git log --oneline

8) Checklist laborator

  • Instalat Git + Git Bash / Terminal
  • Setat user.name și user.email
  • git init în folderul proiectului
  • git add . + git commit
  • .gitignore + commit
  • Branch + merge
  • Repo GitHub/GitLab + remote add + push

Dacă folosești main, înlocuiește peste tot master cu main.

© Curs: Git și GitHub — material didactic.