首页 > 解决方案 > Git致命:模棱两可的参数“提交哈希”:未知的修订版或路径不在工作树中

问题描述

我正在尝试使用 git CLI 来编写一些相当简单的脚本。我最终要做的是使用 git 显示两次提交之间的所有文件更改,这应该像“git diff [commit1] [commit2]”这样简单。

但是我什至无法使用“git diff [commit]”获得一次提交的差异。我使用 git init 在本地创建了一个 repo,然后创建了一些虚拟文件和文件夹。我尝试使用 git diff 并遇到了这个问题。我想也许问题是我没有使用分支,所以尝试通过“git checkout -b my/branch”创建一个分支,进行了更多提交,但我仍然遇到这个问题。

我尝试在这里搜索,发现情况和解决方案比我在这里尝试原型的简单脚本用例复杂得多。

λ git log
commit 6d107f6bcff58b263d8611c19c770c6370d7a33c (HEAD -> my/branch)
Author: ---
Date:   Tue Oct 13 15:07:35 2020 -0700

    filemodcheck

λ git diff c6370d7a33c
fatal: ambiguous argument 'c6370d7a33c': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

如果我发送诸如“git diff [commit1] [commit2]”之类的内容并且如果我从 master 而不是从分支中选择提交,尽管所有选定的提交都是通过“git log”找到的,这个问题也会重现。

提前致谢!

标签: gitcommand-line-interface

解决方案


那是因为您使用的是散列的最后一个字符而不是第一个字符。

尝试:

git diff 6d107f6

一个简短的 Git 哈希由 SHA-1 校验和的n 个字符(默认为 7 个)组成。由于您使用的是最后一个字符,Git 无法识别哈希。


推荐阅读