首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git rev-parse是做什么的?

git rev-parse是做什么的?
EN

Stack Overflow用户
提问于 2013-04-03 21:53:47
回答 4查看 201.4K关注 0票数 431

git rev-parse是做什么的?

我读过手册页,但它提出的问题多于答案。比如:

挑选和按摩参数

按摩?那是什么意思?

我使用的是修订版说明符的解析器(到SHA1),如

代码语言:javascript
复制
git rev-parse HEAD^

代码语言:javascript
复制
git rev-parse origin/master

这就是指挥部的目的吗?如果没有,用它来实现这一点是否正确?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-04 04:03:28

git rev-parse是一个辅助的plumbing命令,主要用于操作。

git rev-parse的一个常见用法是打印给定修订说明符的SHA1散列。此外,它还有多种选项来格式化这个输出,比如--short,用于打印一个更短的唯一SHA1。

我还使用了其他一些用例(在脚本和构建在git之上的其他工具中):

  • --verify来验证指定的对象是否是有效的git对象。
  • --git-dir,用于显示.git目录的abs/相对路径。
  • 检查当前是否在使用--is-inside-git-dir的存储库中,还是在使用--is-inside-work-tree的工作树中
  • 使用--is-bare-repository检查回购是否为裸机
  • 打印分支的SHA1散列(--branches)、标记(--tags)和参考信息也可以基于远程(使用--remote)进行过滤。
  • --parse-opt来规范脚本中的参数(有点类似于getopt),并打印一个可以与eval一起使用的输出字符串

Massage只是意味着可以将信息从一种形式转换为另一种形式,即转换命令。以下是我能想到的一些简单的例子:

  • 它所指向的提交的SHA1中的分支或标记名称,以便将其传递给只接受提交的SHA1值的管道命令。
  • git loggit diff的修订版范围转换为作为B ^A的底层管道命令的等效参数
票数 351
EN

Stack Overflow用户

发布于 2015-01-31 07:34:35

为了详细说明命令名rev-parse的词源,Git在管道命令中一贯使用术语rev作为“修订”的缩写,通常意味着提交的40字符SHA1哈希。例如,命令rev-list打印一个分支的40字符提交哈希列表或其他任何内容。

在这种情况下,名称可以展开为parse-a-commitish-to-a-full-SHA1-hash。尽管该命令具有Tuxdude的答案中提到的几个辅助函数,但它的名称似乎是将一个用户友好的引用(如分支名称或缩写哈希)转换为明确的40个字符的SHA1哈希的用例,对于许多编程/管道目的最有用。

我知道我认为这是“反向解析”的东西很长一段时间后,我才弄明白,并有同样的困难,使术语“按摩”和“操纵”:)

无论如何,我觉得这个“解析到修改”的概念是一种令人满意的思考方式,也是一个可靠的概念,当我需要这样的东西时,我就会想起这个命令。通常,在脚本Git中,您将一个用户友好的提交引用作为用户输入,并且通常希望在接收到它之后尽快将其解析为一个经过验证和明确的工作引用。否则,输入、翻译和验证就会在脚本中大量出现。

票数 160
EN

Stack Overflow用户

发布于 2016-12-27 18:33:06

git rev-parse还可以使用-缩写-参考文献标志获取当前分支名称,如下所示:

代码语言:javascript
复制
git rev-parse --abbrev-ref HEAD
票数 55
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15798862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档