我对使用git的子模块功能感到非常沮丧.要么我仍然没有做对,要么就是因为我没想到这一点.以下项目情况给出:
Project | .git | projsrc | source (submodule) | proj.sln
在此方案中,源指向包含所有项目中的公共源数据的另一个存储库.在源代码下发生了很多开发,也在projsrc下.遗憾的是,Project指向源子模块的一些提交,而不是它的实际HEAD.这是通常的git行为,据我所知.
我已经发现了
git submodule update
只需获取与主项目一起提交的子模块版本.但是,我真的希望始终与子模块开发保持同步,但是没有任何真正的线索如何做到这一点.因此我的问题是:
是否可以将项目附加到子模块的HEAD,
如果这会破坏Project的编译,那么无论如何都是如此.
我只是不想总是进入子模块
目录并做git拉在那里.因为我认为我可以完成我的更改
在子模块目录中,因为这是简单的附加到一个
提交,而不是真正的任何分支左右.
请考虑以下限制:
>我们小组的开发人员并不熟悉所有VCS.我们之前习惯使用非常庞大的svn存储库,根本没有任何外部repo功能.
>我们正在开发Windows
>点击”’忘记解决方案将是最好的,因为大多数项目成员使用命令行界面相当害怕:)
子模块指向特定修订的原因很重要.如果您指向HEAD,则构建将不可再现.即如果您查看昨天的项目版本,您永远不会知道昨天源@HEAD的确切版本.
这就是为什么它总是存储特定的修订版sha.
要拉动所有子模块,您可以使用Easy way pull latest of all submodules