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.
Cuprins
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.
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 --list | Afișează toate setările |
git config --global core.editor "editor" | Setează editorul implicit |
3.2 Creare și clonare repo-uri
| Comandă | Descriere |
|---|---|
git init | Creează un repo local nou |
git clone <url> | Clonează un repo remote |
git remote add origin <url> | Adaugă un remote (de obicei origin) |
git remote -v | Afișează lista remote-urilor |
3.3 Workflow de bază
| Comandă | Descriere |
|---|---|
git status | Afiș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 --amend | Modifică ultimul commit (atenție în echipă) |
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
- Mesaje de commit clare: Add ..., Fix ...
- Branch per feature: feature/auth, bugfix/header
- Commit-uri atomice
- Î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.