问题原因
出现这个问题的原因是下载包的过程中掉线或者关闭程序等中途终止的行为。
本人是在Linux64系统下,用1.5.3版本的julia下载github上的一个仓库,https://github.com/sisl/NeuralVerification.jl,直接在REPL下载包模式下add这个地址
(@v1.5) pkg> add /home/test3/NeuralVerification.jl
没等下载完断网了。再次下载的时候就出现题目所述的问题:
ERROR:invalid git HEAD(reference ‘refs/heads/master’ not found)
尝试解决的办法
一开始尝试删除重装julia,删除julia可能删除掉安装库的日志、缓存等,再重装julia下载安装包。
但是重装之后还是会出现题目所述问题。
然后在julia中文社区的官群里问了别人,说可能是因为项目更新,项目分支默认可能是main而不是master。建议下包的命令加上分支
但是这个项目默认分支是master,于是下包命令加上分支:
(@v1.5) pkg> add /home/test3/NeuralVerification.jl/tree/master
还是无效。
解决办法
搜索reference ‘refs/heads/master’ not found,找到这篇文章
从Github远程仓库克隆到本地Git仓库.
于是把NeuralVerification.jl下载到本地
因为之前下载包看到包都装在
~/.julia/registries/General
这个目录下,因此尝试手动下载包,然后复制到这个目录。发现这个文件会按包的首字母分类,于是下载到
~/.julia/registries/General/N
但是这样复制的包还是无法通过编译。
于是突发奇想,包已经下载好在本地,能不能在REPL模式下通过本地路径下载
(@v1.5) pkg> add /home/test3/NeuralVerification.jl
尝试了这条命令,神奇般地成功了
预编译也成功了
总结
在julia中下载github仓库包中途停止,后续再次下载出现标题所述错误时,可以通过git clone命令把包下载到本地,然后下包的命令加上本地路径,就成功了。