git cat-file -p master^{tree} error out in zsh

ryoqjall  于 2023-06-28  发布在  Git
关注(0)|答案(5)|浏览(123)

git-scm.org文档中,在git objects章节中,它使用下面的命令,但尝试它时会显示“zsh:未找到匹配项:master^{tree}"。知道哪里不对吗

git cat-file -p master^{tree}
vh0rcniy

vh0rcniy1#

我发现在指定那些更棘手的git版本参数时,我必须用引号引起来

git cat-file -p "master^{tree}"

而忽略"失败。
此行为及其原因因平台而异:

  • 在Windows上,在PowerShell和cmd.exe中,^字符用于转义。因此,作为替代,您可以编写git cat-file -p master^^{tree}
  • 在zsh中,^字符用于globbing
  • 在bash中,命令不带引号

(感谢Wumpus Q。Wumbley和Kostix的解释)

ax6ht2ek

ax6ht2ek2#

如果你想运行whatever而不使用globbing,你可以运行noglob whatever。例如,我将它定义为rake的别名。

nnsrf1az

nnsrf1az3#

此错误的各种可能情况:
根据您使用的shell,在使用master^{tree}语法时可能会遇到错误。
在Windows上的CMD中,^字符用于转义,因此您必须将其加倍以避免这种情况:git cat-file -p master^^{tree}.使用PowerShell时,使用{}字符的参数必须用引号括起来,以避免参数被错误解析:git cat-file -p 'master^{tree}'。
如果你使用ZSH,^字符用于globbing,所以你必须把整个表达式用引号括起来:git cat-file -p“master^{tree}".
正如villasv所指出的:如果您确实得到“Not a valid object name master^{tree}”,请确保至少完成了一次提交。master分支在git init之后还不存在。- villasv“由于master^{tree}语法指定了master分支上最后一次提交所指向的树对象,引用为git object在提交当前更改后,可以执行git cat-file -p 'master^{tree}'

nwlqm0z1

nwlqm0z14#

在Windows中执行该步骤之前需要克隆项目。

kdfy810k

kdfy810k5#

根据您使用的shell,在使用master^{tree}语法时可能会遇到错误。
在Windows上的CMD中,^字符用于转义,因此您必须将其加倍以避免这种情况:git cat-file -p master^^{tree}.使用PowerShell时,使用{}字符的参数必须用引号括起来,以避免参数被错误解析:git cat-file -p 'master^{tree}'。
如果你使用ZSH,^字符用于globbing,所以你必须把整个表达式用引号括起来:git cat-file -p“master^{tree}".

相关问题