问题描述
在修改一个 cookbook 后,尝试在 berks 文件中添加一个 cookbook 依赖关系。然后尝试进行收敛,但是出现了以下错误:
fatal: ambiguous argument 'master': unknown revision or path not in the working tree.use '--' to separate paths from revisions, like this:git <command> [<revision>...] -- [<file>...]'on test
用户不清楚如何解释这个错误,希望能得到帮助。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
这个错误看起来是你使用了一个不存在的引用(分支/标签)。尝试使用 branch/tag
选项指定正确的分支和标签。你也可以直接使用提交哈希值来指定引用。
另外,请确保你的 git URL 是正确的(你的代码中没有包含 xxx.git
部分)。
方案2
以下解决方案是针对一个用户的情况,可能不适用于所有情况。
我最近遇到了相同的错误。在我的情况下,我重新基于一个分支,并尝试推送到远程仓库。其中一个拉取的提交改变了一些目录的结构,在重新基于后,git 拒绝推送,抛出以下错误:
fatal: ambiguous argument 'path/to/scripts': unknown revision or path not in the working tree.Use '--' to separate paths from revisions, like this:'git <command> [<revision>...] -- [<file>...]'Cannot open directory /absolute/path/to/scripts: No such file or directoryerror: failed to push some refs to 'git@host:repo'
我检查了所有的 git 配置,但是找不到错误的原因。最后发现问题是一个 pre-push 的 git 钩子,它是之前使用的一些配置的遗留物,其中包含对已废弃目录的一些操作。
虽然这显然不是 OP 问题的原因,但我在这里发布这个解决方案,以防其他人遇到类似问题。要小心 git 钩子…
方案3
如果以上解决方案都无法解决你的问题,你可以尝试以下操作:
1. 确保你的 cookbook 依赖项的分支/标签存在。
2. 检查你的 git URL 是否正确,确保没有遗漏或错误的部分。
3. 如果你使用了 ref
选项,请确保你指定的提交哈希值是正确的。
4. 如果问题仍然存在,你可以尝试重新克隆仓库,并重新进行修改和收敛操作。
以上是一些常见的解决方案,希望能帮助到你解决问题。如果问题仍然存在,请提供更多的细节,以便我们能够更好地帮助你。