今天在github上找到了一个很有意思的项目,叫做listen1【https://github.com/listen1】,它是一个开源的项目,可以从各大音乐网站自动化搜索歌曲、避免某个特定的网站因为版权问题而无法听歌,超级实用(这里先给作者点个赞,打个小广告)。下面摘自作者的原文:

当我发现找个想听的歌因为版权听不了,需要打开好几个网站开始搜索,来回切换让我抓狂的时候,我知道是时候该做点什么了。
妈妈再也不用担心我找不到我想听的歌了。这里包含了网易云音乐,虾米,QQ音乐, 酷狗音乐,酷我音乐的曲库,够全够大了吧。
搜歌,听歌,就用 Listen1。

于是尝试将它的源码clone下来学习学习。可是clone下来之后,看到一个提示信息,说:

项目中包含了listen1_chrome_extension的引用,在checkout后需要把引用库初始化
git submodule update --init --recursive

于是,执行。

可是,出错:

leon@Ubuntu:~/studytest/listen1_desktop$ git submodule update --init --recursive
子模组 'app/listen1_chrome_extension' (git@github.com:listen1/listen1_chrome_extension.git) 未对路径 'app/listen1_chrome_extension' 注册
正克隆到 'app/listen1_chrome_extension'...
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
fatal: 无法克隆 'git@github.com:listen1/listen1_chrome_extension.git' 到子模组路径 'app/listen1_chrome_extension'

于是开始百度“git submodule”相关的各类博文,却始终没有发现一个对路的解决办法,大多数人都是拷贝、复制、黏贴、转发别人的博文,没有什么参考意义。

终于,历经千辛万苦(略有夸张哈哈),在一位大神的博客里找到了成功的解决方案:

因为我使用的git url格式与原项目下的.gitmodule文件中的url格式不对,它写的是git格式,而我使用的是https的格式

按照以下方法更换一下即可:

vi .gitmodules

将下面的原文:

[submodule "app/listen1_chrome_extension"]path = app/listen1_chrome_extensionurl = git@github.com:listen1/listen1_chrome_extension.git

修改成:

[submodule "app/listen1_chrome_extension"]path = app/listen1_chrome_extensionurl = https://github.com/listen1/listen1_chrome_extension.git

修改完后,再次执行:

leon@Ubuntu:~/studytest/listen1_desktop$ git submodule update --init --recursive
正克隆到 'app/listen1_chrome_extension'...
Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
fatal: 无法克隆 'git@github.com:listen1/listen1_chrome_extension.git' 到子模组路径 'app/listen1_chrome_extension'

肿么还是出错!!!!????

淡定淡定,再来分析。原来是子模块的url没有同步修改,于是执行下面的命令:

leon@Ubuntu:~/studytest/listen1_desktop$ git submodule sync
为 'app/listen1_chrome_extension' 同步子模组 url

最后再来:

leon@Ubuntu:~/studytest/listen1_desktop$ git submodule update --init --recursive
正克隆到 'app/listen1_chrome_extension'...
remote: Enumerating objects: 45, done.
remote: Counting objects: 100% (45/45), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 899 (delta 20), reused 24 (delta 11), pack-reused 854
接收对象中: 100% (899/899), 1.00 MiB | 322.00 KiB/s, 完成.
处理 delta 中: 100% (587/587), 完成.
检查连接... 完成。
子模组路径 'app/listen1_chrome_extension':检出 '0af87e6b028a1ac2f544b74aca1824b2cef66880'

终于成功了!!!

玩转GIT系列之【git submodule update出错提示子模组未对路径注册】相关推荐

  1. Git系列:git push -u origin master命令理解

    Git系列:git push -u origin master命令理解 git push -u origin master git push -u origin master 相当于 git bran ...

  2. Git系列之git log高级命令

    原文地址 使用任何版本控制工具的目的都在于记录你代码的变化.这可以给予你查看项目历史的能力,去发现谁做出了贡献,弄清楚何时产生了bug,回滚到错误的修改.但是,如果你无法定位,获取这些历史记录将变得毫 ...

  3. 【git系列】git命令之撤销回退篇

    撤销工作区修改 工作区修改代码,并未存入暂存区. 适用场景:工作区对某段逻辑代码进行优化,突然发现存在一定的问题,性能不一定比之前提交的代码优秀,放弃本次对文件的修改. #撤销指定文件 git che ...

  4. Git系列(五):Git Flow

    Git系列目录 Git系列(一):Git安装后配置用户名.邮箱 Git系列(二):Git创建本地仓库及对文件进行操作 Git系列(三):Git版本管理 Git系列(四):本地仓库关联远程仓库(将本地仓 ...

  5. 玩转GIT系列之【如何放弃本地/服务器端所做的修改】

    今天遇到一个问题,就是在git工程下修改了一些代码,结果发现搞错了,需要撤销掉所有改动的内容,还原到之前的初始版本,换言之就是放弃自己在本地所做的修改.该怎么做呢?要分以下几种情况来区别对待: 一.尚 ...

  6. PX4环境git submodule update --init --recursive失败的解决办法

    最近开始搭建PX4环境,搭建是需要从github下载工程,然后使用语句git submodule update --init --recursive更新工程子模块,但往往由于网络原因这一步需要很久,甚 ...

  7. 【git新建分支拉取分支】git submodule update --init --recursive

    拉取分支 git submodule update --init --recursive 新建分支 切到当前分支 git checkout 当前分支 从当前分支创建新的分支 git checkout ...

  8. git下载子模块命令git clone --recursive和git submodule update --init

    目录 方法一:git clone --recursive 方法二:git submodule update --init 有时github上的工程可能会包含一些子模块,例如 这时候如果你只是用下面的命 ...

  9. git-git submodule update报错fatal:不是一个git仓库

    文章目录 git submodule update报错fatal:不是一个git仓库 git init 如何github托管代码? git submodule update报错fatal:不是一个gi ...

最新文章

  1. 剑指offer:面试题19. 正则表达式匹配
  2. 京东智能内容创作算法的演进与实践:基于关键词自动生成摘要
  3. mysql索引有哪些_MySQL索引是个什么东西
  4. c++字符串拼接_Python零基础入门(三):字符串进阶
  5. 九项重要的职业规划提示
  6. 移动负载均衡技术(MBL)
  7. 去除网页FLASH单击并激活此控件解决办法
  8. C# webbrowser 代理
  9. 10.1-10.12-广州软件所-实习工作日记
  10. 踩坑合集(1)——虚拟机桥接模式下的连网问题
  11. C++关键字(static/register/atuo/extern/volatile/const)释疑
  12. 【个人网站】零基础个人网站搭建完整教程(附免费源码)
  13. 把鼠标指针换成自定义图片 傻瓜教程
  14. 浅谈Web大数据可视化平台开发流程
  15. 仿真软件测试基尔霍夫定律,基尔霍夫定律的仿真验证.ppt
  16. HTM页面监听Crtl + C 事件
  17. 计算机里的MAC,怎么在mac苹果电脑中查看电脑开机运行的时长
  18. void指针(void *)是什么?如何使用它
  19. P44 单行子查询案例分析
  20. DevExpress 控件使用之BarManager

热门文章

  1. oracle alter_log,在线查看alter.log文件内容
  2. yolov3 python_Python 3 Keras YOLO v3解析与实现
  3. Jmeter中使用循环如何保证数据不重复
  4. 【转载】TCP和TCP/IP的区别
  5. ImportError: No module named 'commands'
  6. 04. Web大前端时代之:HTML5+CSS3入门系列~HTML5 表单
  7. lightoj 1224
  8. Thinkpad X240使用U盘安装Win7系统
  9. Oracle SQL Access Advisor 说明
  10. 女人 这20种男人你永远不必等