Git Submodule 使用方式 with Coinlifee

新增 Submodule
打开 Terminal 进入欲新增 Submodule 的专案资料夹下,输入下列指令:

git submodule add {git_url_path} {module_name}

範例:

git submodule add http://192.168.0.100/tools/common.git common
完成后,输入 git status,会发现多了二个档案需要 commit

build.gradle 设定
开启 build.gradle 档案,加入 project

implementation project(':common')
settings.gradle 设定
开启 settings.gradle 档案,加入下列设定

include ':common'
Submodule build.gradle 设定
如果遇到了 Submodule package not found 的问题,要将 Submodule 的build.gradle 修改设定

修改前:

plugins {
id 'java'
id 'org.springframework.boot' version "${VERSION_SPRING_BOOT}"
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
}
修改后:

将 plugins 设定移出改为使用 apply plugin,并加入 bootJar & jar 的设定

apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
plugins {
id 'java'
}
bootJar {
enabled = false
}
jar {
enabled = true
}
移除 Submodule
想解除 Submodule 要怎么做呢?需要将 Submodule 资料夹与 .gitmodules 档案删除,也可以输入下列指令:

git rm --cached common
rm common
rm .gitmodules
然后开启 .git/config 档案,将 submodule 整段设定移除,并存档,整段文字长的会像下列这样:

//下面这段移除后存档
[submodule "common"]
url = http://192.168.0.100/tools/common.git
active = true
Submodule 自动更新
当 Submodule master branch 有更动,引用的专案会自动更新,只要将新的程式码 pull 下来就可以啰。

Git Clone Project with Submodule
在下 git clone 的指令将 project 抓下来时,并不会把 Submodule 一併取得,需使用 --recursive

git clone --recursive http://192.168.0.100/tools/common.git
如果发现 Submodule 资料夹是空的,可以利用下列指令进行 update

git submodule init
git submodule update --recursive
有安装 Sourcetree 就不用担心这个问题, Submodule 会帮你抓下来的。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章