自制/核心是鱼壳中的浅克隆



我试图用brew install安装一些东西,这个东西弹出了

Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow

当我复制那个东西让它运行时,就会发生这种情况

fish: $(...) is not supported. In fish, please use '(brew)'.
git -C "$(brew --repo homebrew/core)" fetch --unshallow
^

这是什么意思,我该如何解决这些问题?是否有可以忽略或修复的解决方法?

有关我的工作站的其他信息:

  • MacOS 莫哈韦
  • 自制软件版本 2.0.2
  • 运行brew doctor,它显示为没有问题
  • 使用鱼壳(我当然会)

更新1:看起来我是个白痴,把$留在那里。 我确实尝试根据你们的建议修复它,这就是发生的事情。

从命令中删除$,如下所示

git -C "(brew --repo homebrew/core)" fetch --unshallow

这发生了

fatal: cannot change to '(brew --repo homebrew/core)': No such file or directory

更新2:另外,@VonC问我,通过要求我运行以下行brew --repo homebrew/core路径是否存在

brew --repo homebrew/core

它像这样出现

/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core

这表示存储库路径仍然有效并可供使用

如鱼壳/问题 1405 所述

在 bash 中,$(...)等效于反引号,只是它在双引号字符串中受支持。
鱼不使用$(...)backticks,而是使用(...)

所以:

git -C (brew --repo homebrew/core) fetch --unshallow

问题 159 讨论了对$()命令替换语法的支持。
自2012年以来。

fatal: cannot change to '(brew --repo homebrew/core)': No such file or directory

然后仔细检查brew --repo homebrew/core返回的内容,以及路径是否存在。

作为替代方案,请参阅此处:

git -C $HOMEBREW_CORE fetch --unshallow

应该支持使用"",如"如何从HomeBrew中删除浅克隆警告"所示,但不建议从glenn-jackman的评论中获取。

对"浅层克隆"的最简单解释是,它只是 git 存储库的克隆,没有修订历史记录,从而减少了 git 存储库的占用空间。您还可以指定"深度"以减少从 git 克隆获得的修订历史记录量。

在您的情况下,如果您需要完整的历史记录,则需要fetch --unshallow

看起来我做了双重呻吟。
感谢所有对我的评论,我正在做一个哎呀。我非常感谢。

而不是打字

git -C "$(brew --repo homebrew/core)" fetch --unshallow

哪条鱼真的不喜欢那条线$

改用这个:

git -C (brew --repo homebrew/core) fetch --unshallow

没有$".
AAA,就是这样。

如果这没有帮助,请发表评论。我仍然怀疑这是否真的解决了这个问题,哈哈