Ce face git commit
Comanda git commit ia modificările pregătite în zona de staging și le salvează ca un nou punct de control (instantaneu) în arborele de versiuni al proiectului. Fiecare commit primește un identificator unic SHA-1 (hash de 40 de caractere), un autor, o dată și un mesaj descriptiv.
Un commit bun trebuie să fie atomic (să realizeze o singură sarcină logică completă) și să aibă un mesaj clar la timpul prezent (ex. „Adaugă validarea formularului de contact”).
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-m MESAJ |
Specifică mesajul de commit direct din linia de comandă, fără a mai deschide editorul de text. |
-a, --all |
Trece automat prin staging și include toate fișierele modificate sau șterse deja urmărite (nu include fișierele nou create). |
--amend |
Modifică ultimul commit: permite schimbarea mesajului sau adăugarea de fișiere uitate fără a crea un commit nou. |
-v, --verbose |
Afișează diferențele de cod (diff) direct în editorul mesajului de commit. |
Exemple
Exemplul 1: Crearea unui commit cu mesaj descriptiv
Salvăm modificările pregătite și verificăm istoricul.
git init -b main demo_com >/dev/null
cd demo_com
git config user.name "Test"
git config user.email "test@exemplu.ro"
echo "console.log('Salut');" > app.js
git add app.js
git commit -m "Adauga fisierul principal app.js" >/dev/null
git log --oneline
Rezultat
f4e1025 Adauga fisierul principal app.js
Exemplul 2: Corectarea ultimului commit cu –amend
Dacă ai uitat un fișier sau ai greșit mesajul, amend îl actualizează curat.
git add fisier_uitat.txt
git commit --amend -m "Mesaj corectat si complet"
Ieșire în terminal
[main 4a12bc3] Mesaj corectat si complet
Greșeli frecvente
- Mesaje de commit inutile precum „fix”, „update”, „wip” sau „asdasd”, care fac imposibilă înțelegerea istoricului ulterior.
- Folosirea opțiunii
--amendpe commit-uri care au fost deja trimise pe un server remote (push) comun: aceasta rescrie hash-ul commit-ului și creează conflicte pentru colegii de echipă.
Comenzi înrudite
git add: Adaugă modificările din directorul de lucru în zona de pregătire (staging area/index) pentru următorul commit.git log: Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.git push: Încarcă commit-urile locale pe serverul de la distanță (remote) pentru a fi partajate cu echipa.git revert: Anulează efectele unui commit din trecut prin crearea unui nou commit invers, fără a altera istoricul.