git rev parse——短头
以下命令的作用是什么git rev parse——短头,git,Git,以下命令的作用是什么 git rev-parse --short HEAD 答案应包括: 一个简明扼要的回答,解释了这个命令作为一个整体的作用 rev解析的解释 简而言之 头部说明 这两种方法都可以: 根据core.abbrev设置(as)获取缩写的SHA(目前为SHA1),默认为7个字符。 但如果7个字符不足以生成唯一的SHA,git rev parse将生成正确的长度 应用于HEAD,它将返回当前签出提交的SHA1的简短版本(不一定是分支) 您可以在中的git/git代码库中看到它第
git rev-parse --short HEAD
答案应包括:
- 根据core.abbrev设置(as)获取缩写的SHA(目前为SHA1),默认为7个字符。
但如果7个字符不足以生成唯一的SHA,git rev parse将生成正确的长度
改用'git rev parse--short',因为这也可以处理唯一缩写长度超过7个字符的情况 因此,不是:
${sub1sha1:0:7}
使用:
您可以在中找到它,用于bash提示符:
bash提示符:打印唯一的分离头缩写对象名称
根据$GIT\u PS1\u descripe
环境变量描述分离的头部时失败,\uu GIT\u PS1()
运行“cut-c1-7.GIT/HEAD
”,在提示中显示7个六位数的缩写提交对象名称。显然,这既不尊重
core.abbrev
,也不会产生唯一的对象名
改为使用“git rev parse--short HEAD
”,并将相应的测试调整为使用非标准的十六进制数字
因为--short
将计算SHA不含糊的最小长度,所以它应该是git rev parse使用的最后一个选项
看
bash提示符:为分离的头部合并“git rev parse”
根据$GIT\u PS1\u descripe
环境变量描述分离的头时失败,\uu GIT\u PS1()
现在运行“$(GIT rev parse--short HEAD)
”命令替换以获得缩写的分离头提交对象名。这就增加了fork()调用子shell和fork()+exec()调用
git
进程的开销
通过将此命令替换与
“main”git rev parse
“获取.git
目录和公司路径的执行。这意味着我们将查找缩写的提交对象名称,即使它不是必需的,因为我们位于分支上,或者可以描述分离的头。
不过,这并不重要,因为一旦启动并运行“
git rev parse
”以完成所有其他查询,查找缩写提交对象名称的额外开销就无法测量,因为它会在噪音中丢失
但是,当我们在未出生的分支上时,有一个警告,因为在这种情况下,HEAD没有指向有效的commit,因此对缩写commit对象名称的查询将失败。因此,
--short HEAD
'必须是“git rev parse
”的最后一个选项,以便获得提示的所有其他必要信息,即使是在未出生的分支上。此外,在这种情况下,而且仅在这种情况下,“
git rev parse
”显然不会输出包含缩写提交对象名称的最后一行,因此我们必须注意只有在“git rev parse
”退出且没有任何错误时才对其进行解析
你不应该自己做作业吗?(如果这不是一个家庭作业问题,它真的需要很多重新措辞…@torek我不是在问我自己。我已经知道答案了。我刚刚看到,对于这个特定的命令没有任何疑问,如果存在这样的问题,它可以帮助程序员。如果你知道答案,你也应该发布它……我怀疑将每个git命令或诸如此类的文档作为问题复制粘贴到堆栈溢出camofled上是否有意义。他们以前在网站上有一个文档部分,但是它被取消了。这能回答你的问题吗?
sub1sha1_short=$(cd clone3/sub1 && git rev-parse --short HEAD)
$sub1sha1_short