入职第一周,就因为clone项目而产生了很大的障碍,花了差不多三四个小时才定位问题并解决,记录一下。


一、问题

当我们在使用Git克隆项目的时候,无法克隆下来一个文件夹。记该文件夹为A,A在远程仓库是有的,也能点开看到,而克隆下来后,本地A点开后是空的,什么也没有。
A的特征为,其后面跟着一个 @xxxxxxx,xxxxxxx为一串数字。

二、问题演示

1、在Git Bash中克隆远程仓库,指令如下:

git clone https://github.com/Aq-audio/work-record

拷贝本地文件如下所示

而远程仓库如下所示

2、继续点开submodule文件夹。
本地如下所示

而远程仓库点开后如下所示

3、问题出现了:本地上啥也没有,而远程仓库中却有文件——README.md。

三、定位问题

核心在于,submodule文件夹是一个子项目,在远程仓库中,其后面的 @xxxxxxx是子项目的标识。
submodule的具体使用大家可以看Git Book的描述,在此不加以赘述。

https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97

四、解决问题

在本地中,Git Bash进入最开始拷贝得到的文件夹,本例中,该文件夹是 work-record,如下所示

输入指令

git submodule update --init --recursive

此时,再进入本地的submodule文件夹,可以看到,已经将远程仓库中该文件夹下的文件拷下来了。

其它方法:
1、在最开始的时候,看到有这种子项目的项目,直接用以下指令拷贝。

git clone --recursive https://github.com/Aq-audio/work-record

便可以一步到位将所有的子项目拷到本地来。

2、使用visual studio拉取项目,选择递归式拉取。
同样的,如果一个大项目中,有子项目,子项目下面又有子项目,也是一样的操作方法。

说明:该内容与我的知乎专栏——工作点滴一致,都是本人所写。将知乎的内容也发在博客园是因为认识的一个大佬曾在博客园中写过不少博客,向他学习。

Git使用之submodule的更多相关文章

  1. Git 进阶指南(git ssh keys / reset / rebase / alias / tag / submodule )

    在掌握了基础的 Git 使用 之后,可能会遇到一些常见的问题.以下是猫哥筛选总结的部分常见问题,分享给各位朋友,掌握了这些问题的中的要点之后,git 进阶也就完成了,它包含以下部分: 如何修改 ori ...

  2. Git submodule实战

    http://blog.jqian.net/post/git-submodule.html 使用git管理的项目开发中,如果碰到公共库和基础工具,可以用submodule来管理. 常用操作 例如, 公 ...

  3. Git Submodule简单操作

    基于组件的项目很多,但是如果直接用包的方式直接引用到项目中,如果出现问题很难进行调试的操作,也很难进行组件的优化和管理,所以写了一篇文章来介绍下git submodule的用法,用submodule可 ...

  4. 转:Git Submodule管理项目子模块

    使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone ...

  5. Git submodule - 子模块【转】

    子模块 有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使 ...

  6. [转]使用Git Submodule管理子模块

    本文转自:https://blog.csdn.net/qq_37788558/article/details/78668345 实例代码: 父项目:https://github.com/jjz/pod ...

  7. Git Submodule管理项目子模块

    使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone ...

  8. 使用Git Submodule管理子模块

    转自:https://segmentfault.com/a/1190000003076028 使用场景 基于公司的项目会越来越多,常常需要提取一个公共的类库提供给多个项目使用,但是这个library怎 ...

  9. Git Submodule使用完整教程

    Git Submodule功能刚刚开始学习可能觉得有点怪异,所以本教程把每一步的操作的命令和结果都用代码的形式展现给大家,以便更好的理解. 1.对于公共资源各种程序员的处理方式 每个公司的系统都会有一 ...

随机推荐

  1. 数字图像处理 第四章 P157 小错误

    问题 我认为P157中部的卷积公式是错的,f(x)h(x-m)应当写为f(m)h(x-m) 解决方法 为了证明,我就用我蹩脚的python实现一下图4.28左列 源代码如下 import numpy ...

  2. 图文详解压力测试工具JMeter的安装与使用

    压力测试是目前大型网站系统的设计和开发中不可或缺的环节,通常会和容量预估等工作结合在一起,穿插在系统开发的不同方案.压力测试可以帮助我们及时发现系统的性能短板和瓶颈问题,在这个基础在上再进行针对性的性 ...

  3. iframe子页面取父页面的变量问题

    iframe包含的子页面,想获取父页面的变量,不能直接获取到. 但是子页面可以访问父页面的方法  window.parent.parentFunctionName();  利用这一点,可以将父页面的变 ...

  4. Mysql5.7前后修改用户密码变化

    本文主要强调修改密码的sql语句变化.如果是root密码忘记了,请参考Mysql忘记root密码怎么解决 Mysql 5.7以前修改密码 update mysql.user set password= ...

  5. BUUCTF-web web1 (无列名注入)

    注册并登录后发现,sql注入,注入点在广告申请的界面.加单引号发现报错 先通过insert插入数据,然后再通过id查询相应的数据,所以是二次注入. 常见报错函数updatexml,floor以及ext ...

  6. cli框架 获取 命令行 参数

    package main import ( "fmt" "log" "os" "github.com/urfave/cli&quo ...

  7. Python之自定义函数

    函数 1.定义函数 在Python中定义一个函数要使用def语句,一次写出函数名.括号.括号中的的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return返回.如下所示: def 函数名(参数 ...

  8. Python os.chroot() 方法

    概述 os.chroot() 方法用于更改当前进程的根目录为指定的目录,使用该函数需要管理员权限.高佣联盟 www.cgewang.com 语法 chroot()方法语法格式如下: os.chroot ...

  9. C++程序员容易走入性能优化误区!对此你怎么看呢?

    有些C++ 程序员,特别是只写C++ 没有写过 Python/PHP 等慢语言的程序员,容易对性能有心智负担,就像着了魔一样,每写3 行代码必有一行代码因为性能考虑而优化使得代码变形(复杂而晦涩). ...

  10. CF724C Ray Tracing 扩展欧几里得 平面展开

    LINK:Ray Tracing 虚这道题很久了 模拟赛考了一个加强版的 瞬间就想到了这道简化版的. 考虑做法 暴力模拟可能可以 官方正解好像就是这个. 不过遇到这种平面问题可以考虑把平面给无限的展开 ...