【问题标题】:homebrew/core is a shallow clone in Fish shellhomebrew/core 是 Fish shell 中的一个浅克隆
【发布时间】:2019-03-04 04:43:26
【问题描述】:

我尝试使用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 并且显示没有问题
  • 使用 Fish shell(我当然会)

更新 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

这表明存储库路径仍然有效并且可以使用

【问题讨论】:

  • 它告诉你如何解决它:省略美元符号。
  • 我很好奇您使用fish shell 多久了,因为您没有意识到错误消息告诉您尝试运行的复制/粘贴命令出了什么问题。
  • 看起来我太愚蠢了,无法理解它只是想暗示什么。我已经用我发现的更多发现更新了这个问题。

标签: homebrew fish


【解决方案1】:

fish-shell/issue 1405中所述

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

所以:

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

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

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

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

作为替代方案,seen here

git -C $HOMEBREW_CORE fetch --unshallow

应该支持使用"",如“How to remove the shallow clone warning from HomeBrew”所示,但不建议使用,来自glenn-jackmancomment

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

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

【讨论】:

  • 看起来我对 Fish 太陌生了。我已经更新了我的发现。
  • /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core 是路径所在的位置。我还是不明白他们想从我这里得到什么,哈哈
  • 您不希望引号内的命令替换。演示 echo (seq 10)echo "(seq 10)"
  • @glennjackman 谢谢。我已相应地编辑了答案,并包含了您的评论以提高知名度。
【解决方案2】:

看起来我做了双重 oopsies。
感谢所有对我的cmets,我正在做一个oopsies。非常感谢。

不用打字

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

哪条鱼不太喜欢那行中的$

改用这个:

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

没有$"
就是这样。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2011-08-14
    相关资源
    最近更新 更多