git - 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”找到的,这个问题也会重现。
提前致谢!
解决方案
那是因为您使用的是散列的最后一个字符而不是第一个字符。
尝试:
git diff 6d107f6
一个简短的 Git 哈希由 SHA-1 校验和的前n 个字符(默认为 7 个)组成。由于您使用的是最后一个字符,Git 无法识别哈希。
推荐阅读
- r - 如何在 R 中绘制 FFT?(因为还有虚值)我没有信号处理方面的背景
- angular - 当我们更改组件时如何删除会话存储数据
- javascript - 如何在 JS/jQuery 中为每个大块数组创建父标签
- android - 我可以使用 Exposed、Kotlin 库来打开和使用以前创建的数据库吗?我该怎么做?
- asp.net-core - 如何在不先加载实体的情况下更新实体
- c++ - DirectX 11 中绑定索引缓冲区的问题
- c - 如何修复未打印树中节点的错误
- java - JobExecutionListenerSupport 中的执行上下文键 NULL
- reactjs - 在没有创建模型的情况下从 Spring 的 React UI 获取状态对象
- javascript - 我怎样才能找出一个值在数组中的频率?