git clone 下载指定 tag 的代码 + 如何在使用 cmake 时候解决 opencv 多版本共存问题
使用 git clone --branch <tag_name> --single-branch <repository_url>
后,git tag
显示所有标签的原因是,尽管你只克隆了特定分支的内容,但默认情况下,Git 仍然会下载所有标签的引用。这些标签引用占用的空间很少,所以即使它们存在,也不会显著增加克隆操作的时间或占用的磁盘空间。
如果你只想看到特定标签,并且希望避免下载所有标签引用,可以采取以下步骤:
-
克隆仓库但不下载标签引用:
git clone --no-tags --branch <tag_name> --single-branch <repository_url> -
进入克隆的仓库目录:
cd <repository_directory>
这样,Git 只会克隆你指定的标签及其对应的分支,而不会下载所有标签引用。
例如:
git clone --no-tags --branch 3.4.20 --single-branch https://github.com/opencv/opencv.git cd opencv
这种方法会确保你仅下载指定标签的内容,并且在你运行 git tag
时不会显示其他标签。
下载一个 OpenCV 3.4.20.
git clone --no-tags --branch 3.4.20 --single-branch https://github.com/opencv/opencv.git git clone --no-tags --branch 3.4.20 --single-branch https://github.com/opencv/opencv_contrib.git cd opencv mkdir build && cd build export http_proxy=http://127.0.0.1:7890 export https_proxy=http://127.0.0.1:7890 cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules .. make -j$(nproc)
注意:由于之前已经存在 opencv 3.2.0,所以这里下载的 OpenCV 3.4.20 并不会覆盖之前的 OpenCV 3.2.0。
我们没有执行:
sudo make install sudo ldconfig
为了保证 CMakeLists.txt 中的 opencv 的路径正确,我们需要将 OpenCV 3.4.20 的路径加入到环境变量中。
export OpenCV_DIR=/workspace/opencv/build
现在我们就是使用的 OpenCV 3.4.20 了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现