在Git中,如何确定当前的修订版本是什么?


167

我只想知道我当前的版本号是什么。


我在寻找一种方法来获取当前修订版以便在其他git命令中使用它时发现了这个问题。但是,当我阅读答案时,我发现:“等等,我不需要它,我可以HEAD实际使用它。”
安托万·皮萨德

Answers:


228

“版本号”是什么意思?通常用一个版本号标记一个提交然后使用

$ git describe --tags

标识当前HEAD并带有任何标签。如果您想知道当前HEAD的哈希值,则可能需要:

$ git rev-parse HEAD

或用于简短修订哈希:

$ git rev-parse --short HEAD

通常这样做就足够了:

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

但这并不可靠,因为可能会包装裁判。


8
引用可能会打包.git/packed-refs,因此您应该避免直接访问.git/refs/。只需使用git rev-parse master(或者git rev-parse refs/heads/master如果您需要完全明确的话)。
克里斯·约翰森

108

git log -1我认为有很多方法是最简单,最常见的


1
如何使文件成为以前的版本?
TIMEX

1
也许您想要git checkout HEAD ^-文件名
manojlds

2
顺便说一句,这不仅提供了比当前修订版还多的功能,因此您必须对其进行解析(因此,不是最好/最简单/常用的解决方案,恕我直言)
RAM237 '19

36

这只是给您修订版。

git rev-parse HEAD

我认为这是最好的答案,因为它不依赖于实现。William的回答“ cat .git / refs / heads / master”将提供相同的值,但是不能保证如果实现发生更改,它将来也可以使用。
Thagomizer

同意,这是最佳答案。简要提及该--short选项将使其变得完美。
鲍比·杰克

15

这为您提供了哈希的前几个数字,它们的唯一性足以用作版本号。

git rev-parse --short头


0

以下内容适用于任何先前推送的修订版本,不仅适用于HEAD

对于缩写修订哈希:

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

对于长期修订哈希:

git log -1 --pretty=format:%H
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.