Ce face git notes
Mesajul unui commit nu se mai poate schimba fără a rescrie istoria (și a schimba hash-ul). git notes rezolvă asta: păstrează text suplimentar legat de un commit într-o referință separată, refs/notes/commits. Notele apar automat în git log, sub mesaj, cu titlul Notes:.
Sunt utile pentru informații adăugate după commit: „testat pe staging”, numărul tichetului, rezultatul unui build. Notele nu se trimit implicit la git push și nu se aduc la git fetch: trebuie trimise explicit (git push origin refs/notes/commits).
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
add -m MESAJ [commit] |
Adaugă o notă (implicit pe HEAD); -f înlocuiește o notă existentă. |
append -m MESAJ [commit] |
Adaugă text la nota existentă. |
show [commit] |
Afișează nota unui commit. |
edit [commit] |
Deschide nota în editor. |
remove [commit] |
Șterge nota. |
list |
Listează perechile notă-commit. |
--ref=NUME |
Folosește alt spațiu de note (de exemplu refs/notes/review). |
Exemple
Exemplul 1: Notarea rezultatului testelor pe un commit
Nota apare în git log, dar hash-ul commit-ului rămâne același.
git init -q -b main magazin
cd magazin
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
echo 'TVA = 0.21' > taxe.py
git add . && git commit -q -m "TVA 21%"
inainte=$(git rev-parse HEAD)
git notes add -m "Testat pe staging de Ion, 21.10.2026"
git log -1 --format='%s%n%N'
[ "$inainte" = "$(git rev-parse HEAD)" ] && echo "Hash-ul commit-ului nu s-a schimbat"
Rezultat
TVA 21%
Testat pe staging de Ion, 21.10.2026
Hash-ul commit-ului nu s-a schimbat
Exemplul 2: Completarea unei note și afișarea ei
Cu append adăugăm un paragraf nou la nota existentă.
git init -q -b main magazin
cd magazin
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
git commit -q --allow-empty -m "Lansare v2.1"
git notes add -m "Tichet: MAG-142"
git notes append -m "Aprobat de Maria"
git notes show
Rezultat
Tichet: MAG-142
Aprobat de Maria
Exemplul 3: Trimiterea și aducerea notelor de pe server
Notele au referința lor; fără acești pași, colegii nu le văd.
git push origin refs/notes/commits
git fetch origin refs/notes/commits:refs/notes/commits
Ieșire în terminal
To github.com:firma/magazin.git
* [new reference] refs/notes/commits -> refs/notes/commits
Greșeli frecvente
- Presupunerea că notele ajung pe server odată cu commit-ul:
git pushnu trimiterefs/notes/*fără să le ceri explicit. - Folosirea notelor pentru informații esențiale despre cod: multe interfețe web (inclusiv GitHub) nu afișează notele. Ce trebuie să știe toți colegii pune în mesajul commit-ului.
Comenzi înrudite
git log: Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.git show: Afișează informații detaliate și diferențele de cod (diff) ale unui commit, etichetă sau fișier istoric.git commit: Înregistrează un nou instantaneu permanent al fișierelor din staging în istoricul depozitului.