go mod的时候报unknown revision怎么办/如何用brew安装指定版本的包
go mod这玩意对git版本有迷之依赖,有大佬研究了一下,发现git版本在1.9.1和2.7.4之间才能正常工作,而系统自带的或者brew装出来的git,往往都太新了
那么怎么办呢?只有把git装到指定版本才能解决这个问题。MacOS下一般用brew来装这些乱七八糟的东西,但它默认会给你装上最新版,想要旧版本就比较麻烦,这里整理一下brew如何装指定版本的formula。
步骤
1. 把brew的formula仓库整个搞下来
git -C "$(brew --repo homebrew/core)" fetch --unshallow
2. 去仓库里找合适版本的commit id
进到仓库目录下
cd "$(brew --repo homebrew/core)"
翻git log
找到需要的版本,
用下面命令自动搜,找包含我们想要的版本号2.6.4字样的commit
git log master -S'2.6.4' -- Formula/git.rb
或者用下面的命令手工看
git log master -- Formula/git.rb
找到我们需要的commit
commit 3d76c88ff2e71113dec4837e73240d8b018c3b39
Author: Robin Kunde <robin.kunde@recoursive.com>
Date: Tue Dec 8 18:45:37 2015 -0500
git 2.6.4
Closes Homebrew/homebrew#46813.
Signed-off-by: Dominyk Tiller <dominyktiller@gmail.com>
commit后面那串3d76c88ff2e71113dec4837e73240d8b018c3b39
就是commit id,复制下来。
3. 去GitHub上找到这个文件的路径
自己把下面的地址补全
https://github.com/Homebrew/homebrew-core/blob/<commit_id>/Formula/<formula_script>
例如我们找的就是
https://github.com/Homebrew/homebrew-core/blob/3d76c88ff2e71113dec4837e73240d8b018c3b39/Formula/git.rb
打开页面,点击Raw
按钮,打开原始文件,把url复制下来,我们这里获得了
https://raw.githubusercontent.com/Homebrew/homebrew-core/3d76c88ff2e71113dec4837e73240d8b018c3b39/Formula/git.rb
4. 用brew安装这个formula
brew install
命令,后面接上面那个文件url。
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/aa4c9bb45c1d790597e5d4300f1115c752b68578/Formula/git.rb
另外也可以本地切分支找这个文件来直接装,就不需要去github上找url了。
最后你就可以试试go mod有没有恢复正常啦。(另外由于众所周知的社会主义原因,推荐配合使用proxychains-ng以便正常安装go的依赖)
参考