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
答案应包括:

  • 一个简明扼要的回答,解释了这个命令作为一个整体的作用
  • rev解析的解释
  • 简而言之
  • 头部说明
  • 这两种方法都可以:

    • 根据core.abbrev设置(as)获取缩写的SHA(目前为SHA1),默认为7个字符。
      但如果7个字符不足以生成唯一的SHA,git rev parse将生成正确的长度
    应用于HEAD,它将返回当前签出提交的SHA1的简短版本(不一定是分支)

    您可以在中的git/git代码库中看到它第一次被使用

    子字符串扩展表示法是一种巴什主义,到目前为止我们还没有 通过。
    改用'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