Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在远程存储库中获取提交哈希的git标记?_Git - Fatal编程技术网

如何在远程存储库中获取提交哈希的git标记?

如何在远程存储库中获取提交哈希的git标记?,git,Git,通过执行以下操作,可以获取指向本地存储库中特定提交的标记: git tag --points-at <commit-hash> 或者这个: git describe --exact-match <commit-hash> 远程存储库也可以这样做,甚至不克隆存储库 git ls-remote -t <remote> | grep <commit-hash> git ls remote列出远程存储库中的所有引用及其sha1值-t仅限于标签。如果您

通过执行以下操作,可以获取指向本地存储库中特定提交的标记:

git tag --points-at <commit-hash>
或者这个:

git describe --exact-match <commit-hash>
远程存储库也可以这样做,甚至不克隆存储库

git ls-remote -t <remote> | grep <commit-hash>
git ls remote列出远程存储库中的所有引用及其sha1值-t仅限于标签。如果您在本地git存储库下,并且远程是源代码,则可以省略。如果指定like,则可以在任何位置运行该命令https://github.com/foo/bar.git. -如果命令中存在,则t必须在前面。更多信息请访问

更新:

不,在git ls remote上没有类似的点。如果知道标记名,git ls remote将返回sha和标记,但不可能从sha返回标记名

有两种类型的标记。一个是轻量级标记,另一个是带注释的标记。former只是一个ref,后者是一个git对象。Git有四种对象,commit、tag、tree和blob

如果v1.0是一个轻量级标记,那么v1.0和v1.0^{}是相同的

如果v1.0是一个指定的标记,那么v1.0是一个标记对象,v1.0^{}是它所引用的提交。作为一个指定标记,v1.0和v1.0^{}对于许多git命令是相同的,例如git log、git show、git diff,当它们被解析为commit或tree时。在GitLogV1.0中,v1.0是一个提交工具。作为提交,v1.0和v1.0^{}引用相同的提交。因此,我们从git log v1.0和git log v1.0^{}获得相同的输出。对于其他git命令,如git rev parse,它们是不同的。在GitRevParse-Tv1.0中,v1.0是一个标记对象。在git rev parse-t v1.0^{}中,v1.0^{}是一个提交对象

git ls remote列出远程存储库中的所有引用及其sha1值-t仅限于标签。如果您在本地git存储库下,并且远程是源代码,则可以省略。如果指定like,则可以在任何位置运行该命令https://github.com/foo/bar.git. -如果命令中存在,则t必须在前面。更多信息请访问

更新:

不,在git ls remote上没有类似的点。如果知道标记名,git ls remote将返回sha和标记,但不可能从sha返回标记名

有两种类型的标记。一个是轻量级标记,另一个是带注释的标记。former只是一个ref,后者是一个git对象。Git有四种对象,commit、tag、tree和blob

如果v1.0是一个轻量级标记,那么v1.0和v1.0^{}是相同的


如果v1.0是一个指定的标记,那么v1.0是一个标记对象,v1.0^{}是它所引用的提交。作为一个指定标记,v1.0和v1.0^{}对于许多git命令是相同的,例如git log、git show、git diff,当它们被解析为commit或tree时。在GitLogV1.0中,v1.0是一个提交工具。作为提交,v1.0和v1.0^{}引用相同的提交。因此,我们从git log v1.0和git log v1.0^{}获得相同的输出。对于其他git命令,如git rev parse,它们是不同的。在GitRevParse-Tv1.0中,v1.0是一个标记对象。在git rev parse-t v1.0^{}中,v1.0^{}是一个提交对象。

谢谢。但是,我必须以某种方式解析结果。有没有一种方法可以像使用{git tag-points at}一样只获取标记名。另外,v1.0和v1.1 ^{}之间有什么区别?谢谢。但是,我必须以某种方式解析结果。有没有一种方法可以像使用{git tag-points at}一样只获取标记名。另外,v1.0和v1.1 ^{}之间有什么区别?