从GitHub下载同文trime输入法时因为墙的原因,导致无法链接到GitHub,特别是子模块没法下载。经过这几天的尝试找到一条解决方法如下:

# 1. 使用代理
git clone https://ghproxy.com/https://github.com/osfans/trime.git# 2. 当中一些子模块不会下下来
# 修改.gitmodules文件,每条url加上https://ghproxy.com。如url = https://ghproxy.comhttps://github.com/BYVoid/OpenCC.git
[submodule "app/src/main/jni/OpenCC"]path = app/src/main/jni/OpenCCurl = https://github.com/BYVoid/OpenCC.git
[submodule "app/src/main/jni/snappy"]path = app/src/main/jni/snappyurl = https://github.com/google/snappy.git
[submodule "app/src/main/jni/boost"]path = app/src/main/jni/boosturl = https://github.com/boostorg/boost.git
[submodule "app/src/main/jni/librime"]path = app/src/main/jni/librimeurl = https://github.com/rime/librime.gitignore = dirty
[submodule "app/src/main/jni/libiconv"]path = app/src/main/jni/libiconvurl = https://github.com/osfans/libiconv-gnu.git
[submodule "app/src/main/jni/librime-lua"]path = app/src/main/jni/librime-luaurl = https://github.com/hchunhui/librime-luaignore = dirty
[submodule "app/src/main/jni/librime-lua-deps"]path = app/src/main/jni/librime-lua-depsurl = https://github.com/hchunhui/librime-luabranch = thirdparty
[submodule "app/src/main/jni/librime-octagram"]path = app/src/main/jni/librime-octagramurl = https://github.com/lotem/librime-octagram.git
[submodule "app/src/main/jni/capnproto"]path = app/src/main/jni/capnprotourl = https://github.com/capnproto/capnproto.git
[submodule "app/src/main/jni/librime-charcode"]path = app/src/main/jni/librime-charcodeurl = https://github.com/rime/librime-charcode# 3. 不断执行命令
git submodule update --init --recursive

  会有些子模块下不下来,我猜是墙的存在需要做很多检测,时间一长就断线了。因此要不断执行上面那句句,待墙检测完了就可以下下来。
  此时任然有一个问题就是boost子模块里还嵌套着子模块,boost中有些子模块下载下来的是空文件夹且无论执行多少次git submodule update --init --recursive都没用。原因是这些空文件夹中都有一个隐形的.git文件,将.git文件删除重新执行git submodule update --init --recursive就可以下载下来。此时cd 到boost中,具体操作如下:

jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ find libs/ -name .git
libs/callable_traits/.git
libs/polygon/.git
libs/rational/.git::
# 会出现很多.git文件,都删掉
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ find libs/ -name "*.git" | xargs rm -f# 再执行就能将原来空的子模块文件夹
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule update --init --recursive

以下是部分记录


jek@jek-virtual-machine:~/trime$ ^C
jek@jek-virtual-machine:~/trime$ git clone https://ghproxy.com/https://github.com/stilleshan/ServerStatus
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$ cd trime
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ vim .gitmodules
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ git submodule update --init --recursive
jek@jek-virtual-machine:~/trime/trime$
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/leveldb'...
fatal: unable to access 'https://github.com/google/leveldb.git/': GnuTLS recv error (-54): Error in the pull function.
fatal: clone of 'https://github.com/google/leveldb.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/leveldb' failed
Failed to clone 'thirdparty/src/leveldb'. Retry scheduled
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/marisa-trie'...
fatal: unable to access 'https://github.com/s-yata/marisa-trie.git/': Failed to connect to github.com port 443: Connection refused
fatal: clone of 'https://github.com/s-yata/marisa-trie.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/marisa-trie' failed
Failed to clone 'thirdparty/src/marisa-trie'. Retry scheduled
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/opencc'...
fatal: unable to access 'https://github.com/BYVoid/OpenCC.git/': Failed to connect to github.com port 443: Connection refused
fatal: clone of 'https://github.com/BYVoid/OpenCC.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/opencc' failed
Failed to clone 'thirdparty/src/opencc'. Retry scheduled
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/yaml-cpp'...
fatal: unable to access 'https://github.com/jbeder/yaml-cpp.git/': Failed to connect to github.com port 443: Connection refused
fatal: clone of 'https://github.com/jbeder/yaml-cpp.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/yaml-cpp' failed
Failed to clone 'thirdparty/src/yaml-cpp'. Retry scheduled
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/leveldb'...
fatal: unable to access 'https://github.com/google/leveldb.git/': Failed to connect to github.com port 443: Connection refused
fatal: clone of 'https://github.com/google/leveldb.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/leveldb' failed
Failed to clone 'thirdparty/src/leveldb' a second time, aborting
Cloning into '/home/jek/trime/trime/app/src/main/jni/snappy/third_party/googletest'...
fatal: unable to access 'https://github.com/google/googletest.git/': GnuTLS recv error (-54): Error in the pull function.
fatal: clone of 'https://github.com/google/googletest.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/snappy/third_party/googletest' failed
Failed to clone 'third_party/googletest'. Retry scheduled
Cloning into '/home/jek/trime/trime/app/src/main/jni/snappy/third_party/googletest'...
fatal: unable to access 'https://github.com/google/googletest.git/': Failed to connect to github.com port 443: Connection refused
fatal: clone of 'https://github.com/google/googletest.git' into submodule path '/home/jek/trime/trime/app/src/main/jni/snappy/third_party/googletest' failed
Failed to clone 'third_party/googletest' a second time, aborting
Failed to recurse into submodule path 'app/src/main/jni/librime'
Failed to recurse into submodule path 'app/src/main/jni/snappy'
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ git submodule update --init --recursive
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/leveldb'...
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/marisa-trie'...
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/opencc'...
Cloning into '/home/jek/trime/trime/app/src/main/jni/librime/thirdparty/src/yaml-cpp'...
Submodule path 'app/src/main/jni/librime/thirdparty/src/capnproto': checked out  'bb98e7b438708d432dfff13850301401a1e445b1'
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ git submodule update --init --recursive
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ ls
app      build.gradle        gradle             gradlew.bat       magic.txt          PRIVACY.md    README_tc.md
artwork  CODE_OF_CONDUCT.md  gradle.properties  keystore.tar.enc  Makefile           README.md     script
AUTHORS  CONTRIBUTING.md     gradlew            LICENSE           osfans_alipay.png  README_sc.md  settings.gradle
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ cd ..
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$ tar zcvf trime trime.tar.gz
tar (child): trime: Cannot opentar: trime.tar.gz: Cannot stat: Is a directory
tar (child): Error is not recoverable: exiting now
: No such file or directory
tar: Child returned status 2
tar: Error is not recoverable: exiting now
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$ tar -zcvf trime trime.tar.gz
tar: trime.tar.gz: Cannot stat: No such file or directory
tar (child): trime: Cannot open: Is a directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
jek@jek-virtual-machine:~/trime$ ls
trime
jek@jek-virtual-machine:~/trime$
jek@jek-virtual-machine:~/trime$ tar -zcvf  trime.tar.gz trime
jek@jek-virtual-machine:~/trime/trime$ git pull
Already up to date.
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ git submodule update
Submodule path 'app/src/main/jni/OpenCC': checked out '53c03205671cf07d8b46d3125e16f2ba595a73e9'
Submodule path 'app/src/main/jni/boost': checked out 'a07c63c9e56f4d3b5bc904e25a7ad6f900728dbf'
Submodule path 'app/src/main/jni/capnproto': checked out 'b49431c48d40490ef979247d308af63345376cee'
Submodule path 'app/src/main/jni/libiconv': checked out '51aaded80d1986be940d9e73f7927606e316c21e'
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ git submodule update --init --recursive
jek@jek-virtual-machine:~/trime/trime$ git config --global http.lowSpeedLimit 0
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$
jek@jek-virtual-machine:~/trime/trime$ git config --global http.lowSpeedTime 999999
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git branch -a
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git config -l
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ grep path .gitmodules | sed 's/.*= //'
libs/system
libs/multi_array
libs/math
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule status --recursive14c13370602fe86d134a948943958cab0921ce9c libs/accumulators (boost-1.77.0)3b3bd8d3db43915c74d574ff36b4d945b6fc7917 libs/algorithm (boost-1.76.0)0790cd45c8e05b1b59fffbc948b6bcb26eb6a2aa libs/align (boost-1.76.0)dec5cb64a556d4a33a8a57c6a2c1ff58e7aa66ad libs/any (boost-1.78.0)
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule --quiet foreach --recursive 'echo $name'
accumulators
algorithm
align
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule sync
Synchronizing submodule url for 'libs/accumulators'
Synchronizing submodule url for 'libs/algorithm'
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git rm -r --cached libs/
rm 'libs/Jamfile.v2'
rm 'libs/accumulators'
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git branch -rorigin/HEAD -> origin/master
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule foreach git pull *
Entering 'libs/accumulators'
fatal: 'appveyor.yml' does not appear to be a git repository
fatal: Could not read from remote repository.
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule foreach git submodule update
Entering 'libs/accumulators'
Entering 'libs/algorithm'
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git reset --hard HEAD
HEAD is now at a07c63c9e5 Update asio from master
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule foreach --recursive git submodule update
Entering 'more'
Entering 'tools/auto_index'
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule foreach --recursive git submodule init
Entering 'more'
Entering 'tools/auto_index'
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git pull libs/context
warning: no common commits
remote: Enumerating objects: 7034, done.
remote: Counting objects: 100% (7034/7034), done.
remote: Compressing objects: 100% (1960/1960), done.
remote: Total 7034 (delta 4470), reused 7030 (delta 4466)
Receiving objects: 100% (7034/7034), 7.97 MiB | 34.44 MiB/s, done.
Resolving deltas: 100% (4470/4470), done.
From libs/context* branch                  HEAD       -> FETCH_HEAD
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule sync --recursive && git submodule update --init
Synchronizing submodule url for 'more'
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git branch
* (HEAD detached at a07c63c9e5)master
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git submodule --quiet foreach --recursive 'echo $name'
accumulators
algorithm
align
jek@jek-virtual-machine:~/trime/trime/app/src/main/jni/boost$ git branch -a
* (HEAD detached at a07c63c9e5)masterremotes/origin/HEAD -> origin/masterremotes/origin/circle2

从GitHub上无法下载子模块问题解决相关推荐

  1. GitHub上只下载部分文件的操作教程

    @[GitHub上只下载部分文件的操作教程] 说明 !!需要歪网加vx:w18460306081 (备注tizi,费yong15) 很多常用到GitHub的小伙伴发现,GitHub官方网址不能克隆部分 ...

  2. github上只下载部分文件

    有时候我们不想在github上下载整个压缩包,因为压缩包可能比较大,而我们只想要其中的代码文件,也就是只想下载部分文件,例如下面这个网页我们只想下载后缀名为py的文件,这可以通过tortoisesvn ...

  3. 使用git从github上稳定下载项目

    在从GitHub的复制要下载的项目, 执行git clone url

  4. Github 上 lux 下载神器的安装及使用教程

    今天给大家介绍一下关于视频下载神器 "lux" 的安装及使用,其支持包含抖音,爱奇艺,优酷,b站,腾讯等众多国内外在线视频下载,方便快捷. 1.进入github官网,搜索lux,具 ...

  5. Github 上 annie 下载神器的安装及使用教程

    今天给大家介绍一下关于视频下载神器 "annie" 的安装及使用,其支持包含抖音,爱奇艺,优酷,b站,腾讯等众多国内外在线视频下载,方便快捷. 1.进入github官网,搜索ann ...

  6. Github | 如何在Github上只下载一个文件或文件夹!?

    1写在前面 用过github的小伙伴们都知道,我们可以通过git clone命令来下载整个项目到本地.

  7. 怎么在Github上单独下载一个文件或文件夹

    我们经常会在开发过程中上全球最大的同性交友网站查(chao)找(xi)一些优秀的开源项目,来填充自己空虚的内心,经常会用到的命令就是 git clone,使用 clone 来下载整个项目到本地.但是平 ...

  8. 使用Git工具从GitHub上文件代码进行上传下载(图文详细)

    1.注册一个GitHub账号 GitHub: Where the world builds software · GitHub  此链接为GitHub官网 由于GitHub是国外的网站,访问会很慢,又 ...

  9. SpringMVC整合fastdfs-client-java实现web文件上传下载

    为什么80%的码农都做不了架构师?>>>    版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...

最新文章

  1. python中常见的异常
  2. C#中Cookies的读取
  3. C/C++中的运算符优先级总结
  4. Samba服务的安装
  5. hdu 1232 畅通工程(并查集)
  6. 反射java 入门_[java 基础]反射入门
  7. php 留言回复对话_php实现留言板功能(会话控制)
  8. 点餐系统小程序c语言,点餐系统小程序
  9. Wps的两种论文标注参考文献
  10. 巅峰战舰服务器维护,《巅峰战舰》8月5日更新公告
  11. 基于BERT-PGN模型的中文新闻文本自动摘要生成
  12. Domoticz 接入苹果的 HomeKit 实现 Siri 控制
  13. PHP strtoupper函数解析
  14. 企业引入自动化以打造完善的客户体验
  15. 关注我的微信公众帐号小q机器人(xiaoqrobot)
  16. 全国大学计算机专业排名2021,2021全国计算机专业大学排名一览表
  17. binwalk有MySQL_linux – 使用binwalk提取所有文件
  18. 虚拟机安装mysql步骤
  19. fedora上的第一人称射击游戏
  20. 含金量超高的证书:PMP项目管理证书

热门文章

  1. cii框架PHP,CII. POSIX Functions - PHP 5 中文文档
  2. 戴尔服务器r210显示3,Dell服务器R210
  3. linux mysql root修复_linux下误删mysql的root用户,解决方法
  4. 二次元老婆生成器,想要什么样的老婆就靠自己勤劳的双手啦
  5. 16 个 Redis 常见使用场景
  6. 手把手带你玩转 AWS Lambda
  7. 招聘 | B站前端架构师(直播)
  8. java如何实现连接wifi_java-是否可以检测到您要连接的WiFi类型?
  9. linux qt libusb,Ubuntu15下Qt+libusb开发
  10. mysql更新后返回主键,我需要在MYSQL中更新表后返回的受影响行的主键。