git rev-parse是做什么的?
我读过手册页,但它提出的问题多于答案。比如:
挑选和按摩参数
按摩?那是什么意思?
我使用的是修订版说明符的解析器(到SHA1),如
git rev-parse HEAD^或
git rev-parse origin/master这就是指挥部的目的吗?如果没有,用它来实现这一点是否正确?
发布于 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检查回购是否为裸机--branches)、标记(--tags)和参考信息也可以基于远程(使用--remote)进行过滤。--parse-opt来规范脚本中的参数(有点类似于getopt),并打印一个可以与eval一起使用的输出字符串Massage只是意味着可以将信息从一种形式转换为另一种形式,即转换命令。以下是我能想到的一些简单的例子:
git log或git diff的修订版范围转换为作为B ^A的底层管道命令的等效参数发布于 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中,您将一个用户友好的提交引用作为用户输入,并且通常希望在接收到它之后尽快将其解析为一个经过验证和明确的工作引用。否则,输入、翻译和验证就会在脚本中大量出现。
发布于 2016-12-27 18:33:06
git rev-parse还可以使用-缩写-参考文献标志获取当前分支名称,如下所示:
git rev-parse --abbrev-ref HEADhttps://stackoverflow.com/questions/15798862
复制相似问题