HEAD修订的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HEAD修订的问题相关的知识,希望对你有一定的参考价值。

我尝试在脚本中在Mac OS X 10.11上执行命令git rev-list HEAD --count

#!/bin/bash
git=`sh /etc/profile; which git`
buildNumber=`"$git" rev-list --all |wc -l`
echo "$buildNumber"

但我得到下一个错误:

用法:git rev-list [OPTION] ... [ - paths ...]限制输出: - max-count =

我的脚本位于gitRepository/Folder/Scripts/my_script.sh

如果我在root git文件夹中运行git rev-list HEAD --count,我得到结果1049,但是如果我从../Scripts运行它我得到一个错误:

致命的:模糊的论点'HEAD':未知的修订或路径不在工作树中。使用' - '将路径与修订分开,如下所示: 'git <command> [...] - [...]'

它不是一个空的存储库。

可能是什么问题呢?

答案

在大多数情况下,需要读取/写入特定存储库的Git命令,即除了配置和帮助之外的大多数命令都需要在git存储库中的某处执行。这将意味着包含.git目录及其子目录的任何目录以及裸存储库的根目录。

您收到的错误表明当前目录不是Git目录。

要将cd修复到所需目录或使用类似以下命令:

git --git-dir=/path/to/repo/.git rev-list HEAD --count
另一答案

正确的命令,除了添加--git-dir与适当的Git repo文件夹,将是:

git rev-list --count HEAD

参见commit 8d6ba49commit b00b6accommit 61de0ffcommit dcbaa0bcommit bdbc17ecommit a378feecommit 441ee35Matthew DeVore (matvore)(2018年10月5日)。 (由Junio C Hamano -- gitster --合并于commit f2e2136,2018年10月16日)

tests:正确地命令git-rev-list的参数

在调用git-rev-list时将位置参数放在标志之前是一个常见的错误。 最后排序位置参数。

例如,不要这样做:

git -C pc1 rev-list HEAD --quiet --objects --missing=print

但:

git -C pc1 rev-list --quiet --objects --missing=print HEAD

以上是关于HEAD修订的问题的主要内容,如果未能解决你的问题,请参考以下文章

尝试通过 Homebrew 安装 Hugo - “无法将 HEAD 解析为修订版”

GIT 致命:模棱两可的参数“HEAD”:未知修订版或路径不在 Travis 的工作树中

如何在我的应用程序设置包中显示应用程序版本修订?

尝试使用“brew tap aws/tap”命令在 ubuntu 上通过 brew 安装 aws-sam-cli,出现错误“致命:无法将 HEAD 解析为修订版”

SVN反向合并?

tortoisesvn在更新时显示的修订是什么意思?此修订号与头版本不同