tal*_*les 248 git git-rev-parse
怎么git rev-parse
办?
我已经阅读了手册页,但它提出的问题多于答案.像:
挑选和按摩参数
按摩?那是什么意思?
我用作修订说明符的解析器(对SHA1),比如
git rev-parse HEAD^
Run Code Online (Sandbox Code Playgroud)
要么
git rev-parse origin/master
Run Code Online (Sandbox Code Playgroud)
这是命令的目的吗?如果没有,使用它来实现这一点是否正确?
Tux*_*ude 215
git rev-parse
是一个plumbing
主要用于操纵的辅助命令.
一种常见的用法git rev-parse
是在给定修订说明符的情况下打印SHA1哈希值.此外,它还具有各种格式化输出的选项,例如--short
用于打印较短的唯一SHA1.
还有其他用例(在脚本和基于git构建的其他工具中),我用过:
--verify
验证指定的对象是否是有效的git对象.--git-dir
用于显示目录的abs /相对路径.git
.--is-inside-git-dir
或在工作树内检查您当前是否在存储库中--is-inside-work-tree
--is-bare-repository
--branches
),标签(--tags
)和引用的SHA1哈希也可以根据远程(使用--remote
)进行过滤--parse-opt
规范化脚本中的参数(类似于getopt
)并打印可以使用的输出字符串eval
Massage
只是意味着可以将信息从一种形式转换为另一种形式,即转换命令.这些是我能想到的一些简单例子:
A..B
为git log
或git diff
为用于底层的管道命令作为等效参数B ^A
sca*_*nny 83
为了详细说明命令名的词源rev-parse
,Git一直使用rev
管道命令中的术语作为"修订版"的缩写,通常意味着提交的40个字符的SHA1哈希.rev-list
例如,该命令打印一个40-char提交哈希的列表,用于分支或其他任何内容.
在这种情况下,名称可能会扩展为parse-a-commitish-to-a-full-SHA1-hash
.虽然该命令具有Tuxdude的答案中提到的几个辅助功能,但它的同名似乎是将用户友好的引用(如分支名称或缩写哈希)转换为对许多编程/管道最有用的明确的40个字符的SHA1哈希的用例目的.
我知道我认为这是"反向解析"的东西很长一段时间才弄清楚,并且在理解术语"按摩"和"操纵"时遇到同样的麻烦:)
无论如何,我发现这种"解析到修改"的概念是一种令人满意的思考方式,并且是一种可靠的概念,可以在我需要这种东西时将这个命令记住.经常在脚本编写Git中,您将用户友好的提交引用作为用户输入,并且通常希望在收到后尽快将其解析为经过验证且明确无误的工作引用.否则输入翻译和验证往往会通过脚本激增.
Sam*_*iin 27
总而言之:
它可以帮助您找出当前 HEAD 的提交 ID(即您正在查看的当前提交)
git rev-parse HEAD
Run Code Online (Sandbox Code Playgroud)
或者如果你想要更短的提交
git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)
如果你想在另一个分支中找到最新的提交,你可以这样做
git rev-parse <local-branch-name>
git rev-parse origin/<remote-branch-name>
Run Code Online (Sandbox Code Playgroud)
mit*_*tra 26
git rev-parse
也适用于使用--abbrev-ref标志获取当前分支名称,如:
git rev-parse --abbrev-ref HEAD
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
92384 次 |
最近记录: |