在 Android Studio 中访问 git 子模块

Accessing git submodule in Android Studio

我刚开始为自己的项目使用源代码管理,现在我想添加 Joda-Time。我想将它添加为子模块,所以我进入终端并执行:

git submodule add https://github.com/JodaOrg/joda-time.git

并且它成功下载了所有文件。然后我运行:

git submodule init

一无所获。

git submodule status

returns

b9fe534c7f5876eced6494a6d6c1deaf2528a579 joda-time (v2.7-17-gb9fe534)

我检查了我的项目根目录,我看到了新的 joda-time 目录及其源代码。但是现在我如何访问我项目中的库?我错过了一步吗?

您错过了 git submodule update。来自文档:

Update the registered submodules to match what the superproject expects by cloning missing submodules and updating the working tree of the submodules.

您也可以使用 --init 选项来完成,它会为您完成 git submodule init

试试 git submodule update --init。这将允许您一步完成 git submodule initgit submodule update。请注意,您只需添加一次 --init 选项。

引自doc

update

Update the registered submodules to match what the superproject expects by cloning missing submodules and updating the working tree of the submodules.

另一方面,git init 本身就是

copying submodule names and urls from [your] .gitmodules [file] to [your local] .git/config [folder].

完成此操作后,您会注意到您的子模块处于分离状态。您可以简单地从那里检出任何现有分支,例如 git checkout master 检出上游 master 分支。

我对所提供的答案一无所知。当我不断在互联网上搜索帮助提示时,我偶然发现了 Joda-Time-Android,所以我删除了原来的 Joda-Time 子模块并再次尝试使用新的。有用!它已将自己添加到我的项目中并准备好运行!

在我仍在对原始问题进行故障排除期间,Joda-Time 不包含 build.gradle 文件,但 Joda-Time-Android 包含 - 我认为这就是问题所在。