在Git中,如何确定当前的修订版是什么?
我只想知道我当前的版本号是什么。有很多方法在Git中,如何确定当前的修订版是什么?,git,Git,我只想知道我当前的版本号是什么。有很多方法git log-1是最简单和最常见的,我认为这只提供了修订版 git rev-parse HEAD “版本号”是什么意思?使用版本号标记提交,然后使用 $ git describe --tags 识别当前磁头w.r.t.任何标签。如果您的意思是想知道当前头的哈希值,您可能需要: $ git rev-parse HEAD 或者对于简短的修订哈希: $ git rev-parse --short HEAD git log -1 --pretty=fo
git log-1
是最简单和最常见的,我认为这只提供了修订版
git rev-parse HEAD
“版本号”是什么意思?使用版本号标记提交,然后使用
$ git describe --tags
识别当前磁头w.r.t.任何标签。如果您的意思是想知道当前头的哈希值,您可能需要:
$ git rev-parse HEAD
或者对于简短的修订哈希:
$ git rev-parse --short HEAD
git log -1 --pretty=format:%h
git log -1 --pretty=format:%H
这通常足以做到:
$ cat .git/refs/heads/${branch-main}
但这是不可靠的,因为ref可能会被打包。这会给出散列的前几个数字,并且它们足够唯一,可以用作版本号
git rev-parse --short HEAD
以下内容将适用于之前推出的任何修订版,而不仅仅是HEAD 对于缩写修订哈希:
$ git rev-parse --short HEAD
git log -1 --pretty=format:%h
git log -1 --pretty=format:%H
对于长修订哈希:
$ git rev-parse --short HEAD
git log -1 --pretty=format:%h
git log -1 --pretty=format:%H
如何使文件成为以前的版本?可能您需要git checkout HEAD^--FileName顺便说一句,这不仅仅是当前版本,因此您必须解析它(因此,不是最好的/最简单的/常见的解决方案,imho)引用可能打包在
中。git/packed Refs
,因此,您可能应该避免直接访问.git/refs/
。只要使用git-rev-parse-master
(或者git-rev-parse-refs/heads/master
,如果需要完全明确的话)。git-descripe
就是我想要的。非常感谢。我在寻找获取当前版本的方法以便在进一步的git命令中使用它时发现了这个问题。但是当我读到答案时,我发现:“哦,等等,我不需要它,我实际上可以使用HEAD
。”我认为这是最好的答案,因为它不依赖于实现。William的回答“cat.git/refs/heads/master”将提供相同的值,但不能保证如果实现发生变化,它在将来会起作用。同意,这是最好的答案。只要简单地提到--short
选项,它就完美了。