克隆 git 子模块

git 子模块的另一个常见操作是克隆带有子模块的项目。

我们可以使用 git clone 命令继续。

借助此命令,我们可以克隆目录及其子模块。
请注意,它不会克隆其中的文件。
你需要运行 git submodule init 和 git submodule update 。
第一个命令更新本地 .git/config 文件以及来自 .gitmodules 的映射。
第二个命令将从子模块项目中获取整体数据,检查父项目中的映射提交。

通常,如果我们想将项目保存在不同的存储库中,使用子模块是正确的决定。
无论如何,我们应该考虑到使用子模块非常棘手的事实,并且我们不能将它们用于所有项目。

如何拉取最新的 Git 子模块

可以将不同的 git 存储库包含到 Git 中的单个存储库中。

包含的存储库称为子模块。

子模块是父存储库工作目录中特定路径中父存储库中涉及的存储库。

拉取最新子模块的步骤

在使用子模块时,经常需要拉取最新的 git 子模块。
如果我们是第一次这样做,我们应该在其存储库中启动子模块。
请按照以下步骤操作:

设置子模块

通过运行创建一个新的子模块:

git submodule update --init --recursive

更新远程分支的最新提示:

如果我们使用的 Git 版本是 1.8.2 或者更高版本,我们可以添加 --remote 参数,并运行以下命令:

git submodule update --recursive --remote

--remote 参数会将非默认分支添加到 .git/config 或者 .gitmodules 中的特定文件。

如果 Git 版本是 1.7.3.
或者以上,我们需要运行:

git submodule update --recursive

或者

git pull --recurse-submodules

在 git 子模块中推送更新

由于子模块代表一个单独的存储库,它允许在子模块的目录中运行 git push 命令。

如果我们在主要存储库中调用 git status 命令,则子模块将位于“未暂存以进行提交的更改”中,并带有以下文本:“已修改的内容。

它将在另一个提交中检查子模块的代码,而不是主存储库所指向的代码。
如果你想让主体仓库指向新的提交,你需要调用 git add 命令,提交,最后推送它。

日期:2020-06-02 22:16:42 来源:oir作者:oir