【问题标题】:Update to submodule in ADO repository更新 ADO 存储库中的子模块
【发布时间】:2020-12-08 01:00:58
【问题描述】:

我有 2 个 ADO 存储库 - Repo1 和 Repo2

Repo1 设置为 Repo2 中的子模块

假设我在 Repo1 中进行了更改,并且在 Repo1 的“master”分支中添加了一个新的提交。

我运行以下命令在 Repo2 的子模块中获取该提交。

git submodule update --remote –merge
git add *
git status
git commit -m “updated public submodule”

每次Repo1中有新提交时,我是否应该在Repo2中添加一个新提交以更新子模块?

【问题讨论】:

    标签: git azure-devops git-submodules


    【解决方案1】:

    没有。子模块允许您将 Git 存储库保留为另一个 Git 存储库的子目录。这使您可以将另一个存储库克隆到您的项目中并保持您的提交分开。

    当使用 Git 子模块时,你可以把它当作一个普通的 git repo。当您克隆一个包含子模块的项目时,默认情况下您会获得包含子模块的目录,但其中还没有包含任何文件。您必须运行两个命令:git submodule init 初始化本地配置文件,git submodule update 从该项目获取所有数据并检查您的超级项目中列出的相应提交:

    git clone https://xxxxxx
    git submodule init
    git submodule update
    

    更多详情请参考以下文档:

    https://git-scm.com/book/en/v2/Git-Tools-Submodules

    【讨论】:

    • 你查看我的回复了吗?有用吗?
    • 谢谢!因此,在我的超级项目中运行上述 git 命令后,我在子模块中看到了最新的提交 #。我的问题 - 假设一个新的提交被添加到 Repo1(记住 Repo1 被设置为 Repo2 中的子模块)。为了在子模块中查看这个新的提交 #,我在我的超级项目中运行了“git submodule update --remote –merge”和“git commit -m “updated commit # in submodule”。这在子模块中添加了新的提交 #。我应该每次在 Repo1 中有新提交时,在超级项目中添加一个新提交,以便使用最新提交 # 更新子模块?
    • 您可以查看文档git-scm.com/book/en/v2/Git-Tools-Submodules。使用子模块的场景是您希望能够将两个项目视为独立的,但仍然能够在另一个项目中使用一个。子模块允许您将 Git 存储库保留为另一个 Git 存储库的子目录。这使您可以将另一个存储库克隆到您的项目中并保持您的提交分开。
    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多