我真的很沮丧使用git的子模块功能。要么我仍然没有把它做好,否则就不能正常工作,因为我期待着这一点。以下项目情况给予:Git submodule mess:如何将git子模块与不熟悉git的开发者一起使用?
Project
| .git
| projsrc
| source (submodule)
| proj.sln
在这种情况下源指向容纳我们所有的项目共源数据的另一个仓库。在源以及projsrc之下有很多发展。不幸的是项目指向源子模块的一些提交而不是它的实际HEAD。就我所知,这是通常的git行为。
我已经发现了
git submodule update
刚刚获得其与主体工程同时COMMITED子模块的版本。但是,我真的希望始终与子模块开发保持同步,但是没有任何真正的线索如何做到这一点。因此,我的问题是:
是否有可能在项目连接到子模块的HEAD, reagardless的事实,这是否会打破项目或不汇编。 我只是不想总是进入子模块 目录,并做git拉那里。因为我认为我可以在子模块目录中删除我的更改 ,因为它简单地附加到 提交,而不是真的到任何分支左右。
请考虑以下限制:
- 开发者在我们的小组是不是熟悉周围的所有VCS。我们之前习惯使用真正庞大的svn仓库,根本没有任何外部回购功能。
- 我们正在努力在Windows
- 一个click'n'forget解决方案是最好的,因为大多数项目成员通过使用命令行界面:)
另请参阅http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194和http://stackoverflow.com/questions/3131912/为什么是git-submodules-incompatible -with-svn-externals/3132221#3132221 – VonC
“我可以放弃在submodule目录中完成的更改,因为它很简单地附加到承诺,而不是真的任何分支“这不是真的!总是有一个分支。当你处于独立状态时,你不会失去你的改变。 – Vanuan