网站建设的内容,wordpress 瀑布流,企业网站定制,做网站源代码怎么下载文章目录一、问题描述二、解决问题三、参考链接四、解决问题4.1 下载主模块4.2 查看主模块的配置4.2 子模块的添加4.3 查看子模块的配置4.4 查看子模块的检出状态4.5 检出submodule4.6 再次查看.git/config4.7 重新打开Android Studio运行代码一、问题描述
在GitHub上下载了一…
文章目录一、问题描述二、解决问题三、参考链接四、解决问题4.1 下载主模块4.2 查看主模块的配置4.2 子模块的添加4.3 查看子模块的配置4.4 查看子模块的检出状态4.5 检出submodule4.6 再次查看.git/config4.7 重新打开Android Studio运行代码一、问题描述
在GitHub上下载了一份源码
https://github.com/the3deer/android-3D-model-viewer
打开之后如下所示
在app这个主module中是需要依赖子moduleengine的但是下载下来的代码engine是空的
二、解决问题
去这个代码的Github主页https://github.com/the3deer/android-3D-model-viewer探索答案 这份GitHub源代码上没有engine的代码 GitHub的README.md文档中有描述 需要添加git submodule下载代码下来 好嘛得使用git submodule add 来添加 engine这个子module.
下面来介绍下git submodule的知识。
三、参考链接
读者可以详情参考下面的链接去了解git submodule的知识点。
Git Submodule使用完整教程Git添加子模块submodulegit中submodule子模块的添加、使用和删除git submodule的添加、删除和更新子目录中的分支
四、解决问题
为了演示方便我们将项目删除全部重新来一次。
4.1 下载主模块 复制主模块的下载链接 执行如下命令下载主模块 git clone https://github.com/the3deer/android-3D-model-viewer.git下载过程中… 下载完毕
可以看到下载下来的主模块有子模块目录 engine 但是 engine目录是个空目录。
4.2 查看主模块的配置
因为我们已经将主模块下载下来了所以就查看下配置如下所示
$ cat .git/config
[core]repositoryformatversion 0filemode falsebare falselogallrefupdates truesymlinks falseignorecase true
[remote origin]url https://github.com/the3deer/android-3D-model-viewer.gitfetch refs/heads/*:refs/remotes/origin/*
[branch main]remote originmerge refs/heads/main
4.2 子模块的添加
git submodule add url path上述代码段中url为需要添加的子模块地址path为需要将子模块添加到的目的路径。
若是将子模块添加到此目录下则上述代码段的path可省略
这个示例我们执行下面的代码
git submodule add https://github.com/the3deer/android-3D-engine.git好嘛执行直接失败
$ git submodule add https://github.com/the3deer/android-3D-engine.git engine/
fatal: engine already exists in the index看来是早已经添加过了我们去查看下配置
4.3 查看子模块的配置
在项目中有个.gitmodules的文件如下所示 我们查看下内容
$ cat .gitmodules
[submodule engine]path engineurl https://github.com/the3deer/android-3D-engine.git
原来如此.gitmodules记录了每个submodule的引用信息知道在当前项目的位置以及仓库的所在。 4.4 查看子模块的检出状态
$ git submodule
-525e9a5246c106f6eaab7e615c81108bd405d5d6 engine
看到submodules的状态是hash码和文件目录但是注意前面有一个减号-含义是该子模块还没有检出。
OK那么我们就检出这个主module的submodules
4.5 检出submodule
克隆项目后默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载
git submodule init
git submodule update我们来实践一下
$ git submodule init
Submodule engine (https://github.com/the3deer/android-3D-engine.git) registered for path engine$ git submodule update
Cloning into E:/GitHubCode/android-3D-model-viewer/engine...
Submodule path engine: checked out 525e9a5246c106f6eaab7e615c81108bd405d5d6
好的顺利的clone了子module仓库下来
4.6 再次查看.git/config
$ cat .git/config
[core]repositoryformatversion 0filemode falsebare falselogallrefupdates truesymlinks falseignorecase true
[remote origin]url https://github.com/the3deer/android-3D-model-viewer.gitfetch refs/heads/*:refs/remotes/origin/*
[branch main]remote originmerge refs/heads/main
[submodule engine]active trueurl https://github.com/the3deer/android-3D-engine.git 4.7 重新打开Android Studio运行代码
主模块和子模块是两个不同的仓库但是可以一起运行了