fatal: ambiguous argument ‘HEAD~1‘: unknown revision or path not in the working tree.

我们在git diff的时候发现有这个问题。

问题背景

在git clone的时候指定了depth=1,然后git reset hard到对应的id上面。

因为我们要做按需编译,要将对应的diff文件检测出来,发现什么文件修改了,才编译,所以又git fetch --depth 2,再执行

git diff --name-only HEAD HEAD~1

然后就有这个问题。

fatal: ambiguous argument 'HEAD~1': unknown revision or path not in the working tree.

首先解释一下这个是什么意思,
说这个HEAD~1这个参数不知道什么意思,因为当前未知的版本或者路径不在工作树中。

将查看,上面git fetch --depth 2下载下来是0

Total 0 (delta 0), reused 0 (delta 0)

经过查询,说是我可能head指针指向错误了,解决方案是

git checkout FETCH_HEAD

然后再去

git diff --name-only HEAD HEAD~1

就能解决。

那么这个FETCH_HEAD是什么意思呢。

FETCH_HEAD: 是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。

为什么会报错了,应该是git到了一个不知道的空间去了,我们需要把空间重新置为FETCH_HEAD,这样才能看到历史diff的代码变更。

你可能感兴趣的:(git)