Di Git, bagaimana saya mengetahui apa revisi saya saat ini?

167

Saya hanya ingin tahu apa nomor versi saya saat ini.

TIMEX
sumber
Saya menemukan pertanyaan ini ketika saya sedang mencari cara untuk mendapatkan revisi saat ini untuk menggunakannya dalam perintah git lebih lanjut. Tetapi ketika saya membaca jawabannya, saya menemukan jawabannya: "Oh, tunggu, saya tidak membutuhkannya, saya hanya bisa menggunakannya HEAD."
Antoine Pinsard

Jawaban:

228

Apa yang Anda maksud dengan "nomor versi"? Sangat umum untuk menandai komit dengan nomor versi dan kemudian menggunakannya

$ git describe --tags

untuk mengidentifikasi tag KEPALA saat ini setiap tag. Jika Anda ingin tahu hash dari HEAD saat ini, Anda mungkin ingin:

$ git rev-parse HEAD

atau untuk hash revisi singkat:

$ git rev-parse --short HEAD

Seringkali cukup untuk melakukan:

$ cat .git/refs/heads/${branch-master}

tetapi ini tidak dapat diandalkan karena wasit dapat dikemas.

William Pursell
sumber
8
Referensi mungkin dikemas .git/packed-refs, jadi Anda mungkin harus menghindari mengakses langsung .git/refs/. Cukup gunakan git rev-parse master(atau git rev-parse refs/heads/masterjika Anda harus benar-benar ambigu).
Chris Johnsen
108

Ada banyak cara git log -1yang paling mudah dan paling umum, saya pikir

manojlds
sumber
1
Bagaimana cara membuat file menjadi versi sebelumnya?
TIMEX
1
mungkin Anda ingin checkout HEAD ^ - filename
manojlds
2
btw, ini memberikan BANYAK LEBIH BANYAK dari sekadar revisi saat ini dan Anda harus menguraikannya secara konsekuen (jadi, bukan solusi terbaik / termudah / umum, imho)
RAM237
36

Ini memberi Anda hanya revisi.

git rev-parse HEAD
htanata
sumber
Saya pikir ini adalah jawaban terbaik, karena tidak tergantung pada implementasi. Jawaban William "cat .git / refs / head / master" akan memberikan nilai yang sama, tetapi tidak ada jaminan bahwa itu akan bekerja di masa depan jika implementasinya berubah.
Thagomizer
Setuju, ini adalah jawaban terbaik. Menyebutkan --shortopsi secara singkat akan membuatnya sempurna.
Bobby Jack
15

Ini memberi Anda beberapa digit pertama dari hash dan mereka cukup unik untuk digunakan sebagai nomor versi.

git rev-parse --Pendek pendek

Ken McConnell
sumber
0

di bawah ini akan berfungsi dengan revisi yang didorong sebelumnya, tidak hanya KEPALA

untuk hash revisi singkat:

git log -1 --pretty=format:%h

untuk hash revisi lama:

git log -1 --pretty=format:%H
Alexey Bychko
sumber