git notes în Git

Atașează note suplimentare unui commit existent (rezultate de test, aprobări) fără să schimbe commit-ul sau hash-ul lui.

Sintaxă comandă
git notes [add | append | show | edit | remove | list] [-m <mesaj>] [<commit>]

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 push nu trimite refs/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.