De ce Git
Git rezolvă trei probleme pe care le are orice proiect de cod: „ce s-a schimbat și când", „cum revin la o versiune care funcționa", și „cum lucrăm mai mulți pe același cod fără să ne călcăm în picioare". GitHub adaugă găzduirea centralizată și colaborarea.
Ce e un „commit"
Un commit e o fotografie a întregului proiect la un moment dat, cu un mesaj care spune ce s-a schimbat și de ce. Șirul de commit-uri e istoria proiectului — poți naviga oricând înapoi la oricare.
Cele trei zone
- Working directory: fișierele tale, așa cum sunt acum.
- Staging area: ce ai marcat pentru următorul commit (`git add`).
- Repository: istoria commit-urilor (`git commit`).
Fluxul de bază
git status # ce s-a schimbat
git add fisier.php # pune în staging
git add . # tot ce s-a schimbat
git commit -m "Adaugă validare la formularul de contact"
git log --oneline # istoriaCe NU pui în Git
- Secrete: `.env`, chei, parole.
- Dependențe instalate: `vendor/`, `node_modules/`.
- Fișiere generate: build-uri, cache.
- Fișiere mari binare (de obicei).
- → toate acestea în `.gitignore`.
Un .gitignore tipic pentru Laravel
/vendor /node_modules /public/build /.env /.env.backup /storage/*.key .DS_Store /public/storage
Exercițiu
Într-un folder de proiect, rulează git init. Creează un .gitignore potrivit. Fă 3 commit-uri mici, fiecare cu o schimbare logică și un mesaj clar. Rulează git log --oneline și citește-ți istoria.
Greșeli frecvente
- Un singur commit gigant „am făcut tot" în loc de commit-uri mici și logice.
- Mesaje inutile: „fix", „update", „asdf".
- Comiți .env sau node_modules.
- git add . fără să verifici cu git status ce incluzi.
De reținut
- Commit = fotografie a proiectului + mesaj despre ce și de ce.
- Flux: modifici → git add (staging) → git commit.
- Commit-uri mici, logice, cu mesaje clare.
- .gitignore pentru secrete, dependențe, fișiere generate.
Pe scurt
Git ține istoria proiectului în commit-uri. Lucrezi în trei zone, comiți des și mic, și ții gunoiul afară cu .gitignore.