Pro Git书中的页面http://git-scm.com/book/en/Git-Tools-Submodules讨论了将子模块创建为git项目中的目录。这是用于添加子模块的命令:
$ git submodule add git://github.com/chneukirchen/rack.git rack
在页面的后面,它说
您可以将rack目录视为单独的项目,然后更新您的 超级项目,不时指向该子项目中的最新提交。
这是什么意思?我不知道在这种情况下“指针”或“更新”是什么意思。该指针存储在何处以及如何存储?如何更新超级项目?
答案 0 :(得分:3)
子模块是一个独立的Git仓库 - 它是一个子模块的原因是它是如何被“超级项目”引用的,或者说是子模块仓库所在的Git仓库。
当您对正在用作子模块的仓库进行更改时,您将像平常一样使用Git仓库进行操作 - 您将进行更改,添加,提交并推送它们。但是在子模块仓库中进行这些更改后,您会在“超级项目”仓库中注意到将存在未提交的更改,并且这些更改将引用子模块仓库。
那么改变了什么?好吧,一个“超级项目”仓库密切关注子模块仓库 - 它的位置,名称和(这很重要)它当前的提交。为什么提交?因为它允许您在“超级项目”中指定在子模块中引用的正确提交是什么。这有很多优点 - 使用第三方库(作为子模块)的图片,最近最近更新了一些您尚未更新项目以适应的向后更改。通过保留对旧提交的引用,您可以确保开始处理项目的任何人都将使用正确支持的子模块版本。
如果您想更新“超级项目”以引用子模块的最新提交,只需像添加,提交和推送任何其他更改文件一样。
答案 1 :(得分:1)
Dev1& Dev2具有以下源代码结构。
Dev2对SubModule进行了一些更改并推送了更改。
Dev1需要执行以下操作才能正确更新子模块
答案 2 :(得分:0)
你可以参考这篇关于git子模块的帖子。 http://plasmixs.wordpress.com/2013/10/06/git-submodules/