Git clone --recursive

前言

看一个学习视频的时候,
提到了一个Git命令↓

git clone --recursive https://github.com/dotnet/extensions.git

对于使用小乌龟{TortoiseGit}选手来说,
这个命令还是值得学习下的.
学习视频中提到一嘴这个命令的作用

把它依赖的一些项目同时下载下来.

但是只是这么听说一下,
更加激起了想要了解这个{--recursive}这个是干嘛用的.
并且也想知道如果用{TortiseGit}执行命令{--recursive}应该勾选哪个选项呢.?

直接去搜索这个命令{--recursive}的作用

搜索出来的大多只有一句话解释,
解释是很简单,但是不够明了...
因为解释语句中引用的一些对象{子项目}我都不知道是啥...

git clone --recursive https://github.com/onnx/onnx-tensorrt.git

git clone --recursive 用于循环克隆git子项目

其实从这个命令{--recursive}的解释中也可以看的出来,
是为了解决如果Git仓库中含有子项目,
将子项目一起克隆下来的.
看完上面我的那句解释,
大家可能会觉得,这不是一句废话嘛,表达的意思是一样的嘛...
但是虽然是同一个意思,但是用自己话在概述一遍,
自己理解的就会稍微深一点.

下面就要大家去学习下{子项目/子模块/submoudle}相关知识了.
我瞅了一眼,相关知识,将一些关键词列一下吧.

某个工作中的项目需要包含并使用另一个项目(也许是第三方库,或者你独立开发的,用于多个父项目的库)。
现在问题来了:你想要把它们当做两个独立的项目,同时又想在一个项目中使用另一个。

Git 通过子模块来解决这个问题。
子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。
它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。

通过在 git submodule add 命令后面加上想要跟踪的项目的
相对或绝对 URL 来添加新的子模块。

默认情况下,子模块会将子项目放到一个与仓库同名的目录中.
如果你想要放到其他地方,那么可以在命令结尾添加一个不同的路径。

....

杂谈

学习知识有时候就像在读代码一样,
你看到一个类.A,但是这个类中又有引用了类.B,
这个时候你如果对B一无所知.
坑定不利于你更好的理解这个类A.

学习知识A的时候,很多时候可以扩展一下知识B的宽度和深度...

扩展知识

摘抄文档

posted @ 2020-06-25 19:51  zh89233  阅读(25950)  评论(1编辑  收藏  举报