我在尝试在HEAD和最后一次提交之间做差异时得到了一些奇怪的输出
Fatal: ambiguous argument 'head^': unknown revision or path not in the working tree.
use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
使用git diff <sha> HEAD^
时,我收到错误
warning: ignoring dangling symref head. warning: ignoring dangling symref head.
fatal: ambiguous argument 'head^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
我错过了什么吗?
答案 0 :(得分:0)
好的,我认为这里有两个可能的原因
1)问题在于,您正在尝试git diff <sha> head^
在这种情况下,您需要将命令更正为git diff <sha> HEAD^
。请注意大写字符。请查看此question,详细了解HEAD
。
2)您正在尝试git diff <sha> HEAD^
并仍在收到错误消息。在这种情况下,我认为您的存储库中只有一个提交。虽然sha
指向单独提交,但您的HEAD
也恰好指向第一次提交,HEAD^
碰巧指向之前的提交,这不存在,所以错误。
此处的另一种可能性是上游某人在进行合并时创建了dangling symref
(a dangling object)或git reset
或git rebase
。这应该可以通过git prune
删除。