【问题标题】:Homebrew fatal: needed a single revision (MacOs Sierra)Homebrew 致命:需要一个修订版(MacOs Sierra)
【发布时间】:2017-01-29 21:37:22
【问题描述】:

不确定这个问题是否与升级到 MacOs Sierra 有关,但从那一刻起,当我运行“brew update”时就会出现这个错误

→ brew update
Checking out v1.0.0 in /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask...
To checkout master in /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask run:
  'cd /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask && git checkout master
fatal: Cannot update paths and switch to branch 'v1.0.0' at the same time.
Did you intend to checkout 'refs/tags/1.0.0' which can not be resolved as commit?
fatal: Needed a single revision
invalid upstream refs/tags/1.0.0
Checking out v1.0.0 in /usr/local/Homebrew/Library/Taps/dart-lang/homebrew-dart...
To checkout master in /usr/local/Homebrew/Library/Taps/dart-lang/homebrew-dart run:
  'cd /usr/local/Homebrew/Library/Taps/dart-lang/homebrew-dart && git checkout master
fatal: Cannot update paths and switch to branch 'v1.0.0' at the same time.
Did you intend to checkout 'refs/tags/1.0.0' which can not be resolved as commit?
fatal: Needed a single revision
invalid upstream refs/tags/1.0.0
Checking out v1.0.0 in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
To checkout master in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core run:
  'cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core && git checkout master
fatal: Cannot update paths and switch to branch 'v1.0.0' at the same time.
Did you intend to checkout 'refs/tags/1.0.0' which can not be resolved as commit?
fatal: Needed a single revision
invalid upstream refs/tags/1.0.0

我试着跑了

cd $(brew --prefix) && git fetch && git reset --hard origin/master

但它给了我这个错误:

fatal: Not a git repository (or any of the parent directories): .git

【问题讨论】:

  • 我也得到了这个,我还没有升级到 Sierra。但是我已经升级到 Brew 1.0

标签: git macos terminal homebrew iterm


【解决方案1】:

升级到 Sierra 后我遇到了同样的问题。

除了显示 Homebrew 安装路径的 brew --prefix 之外,还有 brew --repository 显示其 .git 目录所在的位置。

man brew 声称“对于标准安装,前缀和存储库是同一目录”。手册页已过期或我的安装不是“标准”,但我的 prefix/usr/local 而我的 repository/usr/local/Homebrew

使用相同的命令但 cd $(brew --repository) 为我工作:

cd $(brew --repository) && git fetch && git reset --hard origin/master

【讨论】:

  • 完整修复:cd $(brew --prefix)/Homebrew && git fetch && git reset --hard origin/master
  • 又名brew --repository
  • 已编辑以添加有关 brew --repository 的完整命令和信息。谢谢!
  • 感谢@thomasd,这已经为我解决了这个问题!
  • Homebrew 最近(本周)从/usr/local 迁移到/usr/local/Homebrew,文档可能仍然过时。
【解决方案2】:

接受的答案对我不起作用。有效的是卸载 homebrew 并重新安装它:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew analytics off

【讨论】:

    【解决方案3】:

    对我来说没什么用,我不得不卸载并重新安装 Brew:

    # change to home directory to avoid other errors later
    cd ~
    
    # uninstall brew
    rm -rf /usr/local/Cellar /usr/local/.git && cd ~ && brew cleanup
    
     # reinstall brew
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    【讨论】:

      【解决方案4】:

      卸载

      
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
      

      然后重新安装。

      【讨论】:

        【解决方案5】:

        此命令为我修复了错误:

        git -C $(brew --repository homebrew/core) checkout master
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-17
          • 2022-07-07
          • 2011-06-15
          • 2021-07-31
          • 2017-12-12
          • 1970-01-01
          • 2016-11-08
          • 2014-11-28
          相关资源
          最近更新 更多