Git 致命的:不明确的参数 'commit hash':未知的修订版或不在工作树中的路径

Git fatal: ambiguous argument 'commit hash': unknown revision or path not in the working tree

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

这样简单

但我什至无法获得 'git diff [commit]' 的一次提交的差异。我使用 git init 在本地创建了一个 repo,然后制作了一些虚拟文件和文件夹。我尝试使用 git diff 和 运行 解决这个问题。我想也许问题是我没有使用 b运行ch,所以尝试通过 '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 而不是从 b运行ch 选择一个提交,尽管所有选定的提交都是通过 'git log'.

提前致谢!

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

尝试:

git diff 6d107f6

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