【发布时间】:2012-01-05 18:35:26
【问题描述】:
我有一个名为“A”的项目,在这个项目中我有一个名为 thirdparty 的文件夹,其中有 5 个子模块“1”、“2”、“3”、“4”、“5”
当我标记项目“A”并将其拉到我的服务器上并结帐到标记时,第三方文件夹中没有任何内容
那么,一旦我结帐到标签,我现在如何更新子模块?
是否也可以将子模块代码添加到标签中,使其成为一个可靠的头部,包括标签时的子模块?
【问题讨论】:
标签: git
我有一个名为“A”的项目,在这个项目中我有一个名为 thirdparty 的文件夹,其中有 5 个子模块“1”、“2”、“3”、“4”、“5”
当我标记项目“A”并将其拉到我的服务器上并结帐到标记时,第三方文件夹中没有任何内容
那么,一旦我结帐到标签,我现在如何更新子模块?
是否也可以将子模块代码添加到标签中,使其成为一个可靠的头部,包括标签时的子模块?
【问题讨论】:
标签: git
如果要获取子模块的更新信息,需要进入子模块文件夹,将其作为一个总repo。您的主要项目(这里是“A”)只跟踪子模块的commit id(这里是“1”、“2”等)。
也许你会对这个Question 感兴趣。希望它是你想要的。 :)
Here 是submodule 上的文档。
最后一个问题的答案是“是”。您可以管理您的主项目和其他项目,这些项目是您的主项目中的子模块。每次更新子模块的代码时,都需要在子模块的文件夹中添加 git add . 和 git commit -m "message"。
例如。如果你想更新你的子模块“1”的代码:
cd A/第三方/1
[更新您的代码]
混帐添加。
git commit -a "更新消息"
git推送
然后返回主项目“A”提交子模块的更新。
cd ../..
混帐状态
这里会显示你的项目“1”的commitid信息。
git add A/thirdparty/1
git commit -m "更新子模块 1"
git推送
【讨论】:
我不确定我是否真的理解你的问题。
使用子模块的正常流程是这样的:
这能解决你的问题吗?
【讨论】: