Ce face git rev-parse
git rev-parse este comanda pe care o folosesc scripturile ca să afle informații exacte despre depozit: hash-ul complet al unui commit, numele ramurii curente, directorul rădăcină al proiectului sau dacă directorul curent se află într-un depozit Git.
Primește orice expresie de revizie înțeleasă de Git (HEAD, HEAD~3, main^, v1.2.0, @{u}) și afișează hash-ul corespunzător. Dacă referința nu există, se oprește cu cod de ieșire diferit de zero, lucru util în scripturi.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
<referință> |
Afișează hash-ul complet (40 de caractere pentru SHA-1) al commit-ului. |
--short[=N] |
Afișează hash-ul prescurtat (implicit cel puțin 7 caractere). |
--abbrev-ref HEAD |
Afișează numele ramurii curente (sau HEAD dacă ești pe un commit detașat). |
--show-toplevel |
Afișează calea absolută a rădăcinii depozitului. |
--is-inside-work-tree |
Afișează true dacă directorul curent e într-un director de lucru Git. |
--git-dir |
Afișează calea directorului .git. |
--verify |
Verifică faptul că argumentul este exact o referință validă; altfel eroare. |
Exemple
Exemplul 1: Ramura curentă și hash-urile ultimelor commit-uri
Datele commit-urilor sunt fixate prin variabile de mediu, așa că hash-urile sunt mereu aceleași.
export GIT_AUTHOR_DATE="2026-10-20T10:00:00+03:00" GIT_COMMITTER_DATE="2026-10-20T10:00:00+03:00"
git init -q -b main catalog
cd catalog
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
echo "Ana: 9" > note.txt && git add . && git commit -q -m "Note Ana"
echo "Ion: 8" >> note.txt && git commit -q -am "Note Ion"
git rev-parse --abbrev-ref HEAD
git rev-parse --short HEAD
git rev-parse --short HEAD~1
Rezultat
main
6fdf0e8
4cd3d71
Exemplul 2: Verificări într-un script de deploy
Scriptul se asigură că rulează într-un depozit Git și că există eticheta cerută înainte de a continua.
git init -q -b main magazin
cd magazin
git config user.name "Ana Popescu" && git config user.email "ana@exemplu.ro"
touch app.py && git add . && git commit -q -m "v1"
git tag v1.0.0
git rev-parse --is-inside-work-tree
git rev-parse --git-dir
for versiune in v1.0.0 v2.0.0; do
if git rev-parse --verify -q "$versiune^{commit}" >/dev/null; then
echo "$versiune exista, pornim deploy-ul"
else
echo "$versiune nu exista, oprim"
fi
done
Rezultat
true
.git
v1.0.0 exista, pornim deploy-ul
v2.0.0 nu exista, oprim
Greșeli frecvente
- Folosirea
git branch | grep '*'în scripturi pentru a afla ramura curentă: ieșirea luigit branche pentru oameni și se poate schimba.git rev-parse --abbrev-ref HEAD(saugit branch --show-current) este forma stabilă. - Uitarea lui
--verifycând vrei să validezi o referință: fără el, un argument necunoscut poate fi tratat ca nume de fișier, iar mesajul de eroare e mai greu de interpretat.
Comenzi înrudite
git log: Afișează istoricul cronologic al commit-urilor, cu autor, dată, hash și mesaj.git branch: Listează, creează, redenumește sau șterge ramuri (branches) de dezvoltare.git cat-file: Afișează tipul, mărimea sau conținutul unui obiect din baza de date Git (commit, tree, blob sau etichetă adnotată).