这是当前的设置。我有一个:
我使用子模块来引入GitHub上托管的框架。我的理解是,当我将一个子模块添加到我的存储库时,它会将存储库从GitHub下载到我的本地工作目录,然后我可以在那里签出所需的版本,并最终推送到原点。
当我将代码提交到原始存储库时,它是否也推送了框架的副本,或仅仅是为了缺少更好的单词,是否存储了指向远程存储库的引用/指针?
我问,因为我想创建一些第三方工具的存储库,我经常使用这个框架(目前不使用Git管理),这样我就可以轻松地将它们引入需要它们的项目中。目标是在需要时更新我的本地第三方存储库,并使用更新版本更新各个项目。
我部署项目的方式是将它们推送到Web服务器,然后使用post-receive
挂钩部署应用程序。潜在的问题可能是,如果Git没有推送子模块本身而且只是一个指针,我认为是这种情况,因为这就是git submodule init && git submodule update
的用途,Web服务器将无法获取副本子模块的内容。
我能想到的最简单的解决方案是使用面向公众的服务(如GitHub或Bitbucket)简单地托管这些第三方工具,但我想知道是否还有其他方法?
答案 0 :(得分:1)
当我将代码提交到原始存储库时,它是否也推送了框架的副本,或仅仅是为了缺少更好的单词,是否存储了指向远程存储库的引用/指针?
后者:它存储special entry(作为seen here),这意味着如果您已经完成:
您的收件后挂钩可以处理git submodule update --init --recursive
步骤
请参阅this hook for instance。