问题还是源于国内的网络环境,应该说对于技术研发来说非常不友好。
虽然,前面有过很多方式方法,但是“与时俱进”的氛围下,友好程度也在随着外围环境发生变化。
本次为了获取jetson-fpv的代码(主要是子模块),一直下不下来,各种妖怪事情。
因此,再梳理下各种方法,另外也给出一些经验,希望对大家有帮助!
呵呵!这篇好像名称与内容不符。好多人都这么在问。确实文字可能换成其他的更好,但是写这个主要是为了下载jetson-fpv的代码。因为,笔者升级了Jetson Orin Nano 8GB到Jetpack 6.2 版本,为了用最新的Super 67Tops性能。哈哈!!!
这个jetson-fpv就是一个fpv视频的AI视频分析应用,没什么太多的东西,目前正在评估其性能,后续会有延伸的用途(其支持C/C++/Python)。
全网首台 jetson-fpv | yolo11n | AKM ArduRover 4.5.7
注:将Jetson Orin Nano Super系统整理好,我们就带着OpenIPC去飞一圈!
这里给出的方法主要是技术手段,而针对时间点选取、代理服务器选取,需要自行多多尝试!!!
增加 Git 的缓冲区大小,将缓冲区设置为 500 MB。
$ git config --global http.postBuffer 524288000
Git 默认并发克隆子模块,可能会加重服务器的压力。尝试限制并发数 http.maxRequests
设置为较小的值(如 5),以减少压力。
$ GIT_CURL_VERBOSE=1 git -c http.maxRequests=5 submodule update --init --recursive
临时禁用子模块的深度克隆:
$ git config --global fetch.recurseSubmodules false
$ git submodule update --init --recursive --depth=1
$ git config --global --get http.proxy
$ git config --global --get https.proxy
$ git config --global http.proxy http://192.168.1.10:808
$ git config --global https.proxy http://192.168.1.10:808
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
$ git config --file .gitmodules --get-regexp url
$ git config --file .gitmodules submodule.<submodule-name>.url [email protected]:user/repo.git
$ git submodule sync
$ git submodule update --init --recursive
$ sed -i 's|https://github.com/|[email protected]:|g' .gitmodules
$ git submodule sync
$ git submodule update --init --recursive
$ git config --file .gitmodules --get-regexp url
$ git config --file .gitmodules submodule.<submodule-name>.url https://github.com/user/repo.git
$ git submodule sync
$ git submodule update --init --recursive
$ sed -i 's|[email protected]:|https://github.com/|g' .gitmodules
$ git submodule sync
$ git submodule update --init --recursive
$ git config --file .gitmodules --get-regexp url //查看子模块配置URL
$ git config --file .gitmodules --get submodule.<submodule-name>.url //获取子模块路径
$ git clone <submodule-url> <submodule-path> //手动克隆到子模块目录
$ git submodule absorbgitdirs //更新索引
终极方案:逐一排除问题,如果子模块很多,就需要一个一个的整理。
例如:
$ git config --file .gitmodules --get-regexp url
submodule.module/jetson-inference.url https://github.com/dusty-nv/jetson-inference.git
submodule.module/jetson-utils.url https://github.com/dusty-nv/jetson-utils.git
submodule.module/wfb-ng.url https://github.com/svpcom/wfb-ng.git
submodule.module/msposd.url https://github.com/OpenIPC/msposd.git
submodule.module/ByteTrack.url https://github.com/SnapDragonfly/ByteTrack.git
submodule.module/deepstream_python_apps.url https://github.com/NVIDIA-AI-IOT/deepstream_python_apps.git
submodule.module/DeepStream-Yolo.url https://github.com/marcoslucianops/DeepStream-Yolo.git
submodule.module/jetson-yolo.url https://github.com/SnapDragonfly/jetson-yolo.git
$ git config --file .gitmodules --get submodule.module/jetson-inference.url
https://github.com/dusty-nv/jetson-inference.git
$ git clone https://github.com/dusty-nv/jetson-inference.git module/jetson-inference
$ git submodule absorbgitdirs
笔者遇到的问题:时间点不同导致网络情况变化,因此可以换一个时间尝试
莫名其妙的就好了!!!
【1】Github操作网络异常笔记