问题1.
当我们需要一个maven parent project来管理子项目时,那么对于git来说,我们是新建多个repository来管理maven的submodule比较好点,还是通过一个repository管理比较好点?
如果是新建多个repository,目前碰到的问题是,在eclipse中,导入parent project后,eclipse不能识别子项目的git repository,必须把parent project对应的.git文件删除才行。而且在父项目中profile以及dependency等的编辑后,git管理起来不是很方便,因为这种模式下,各项目在eclipse中支持不是很好。
如果是使用统一个repository,那么结构会比较清晰,而且在导入项目的时候可以通过maven 的submodule来选择对应的项目来导入,目前github上面好多的maven项目都是这么管理的。但是这么做,有些不方便的地方,就是如果想开发某一个子项目,不得不把全部的git repository都download下来,这也是有人觉得前面的模式比较合理的原因。
我目前认为,还是同一个repository比较好点,因为很多项目本身就是存在依赖,并且被父项目管理的,如果拆分成多个repository之后,开发起来也不是很方便,得分开导入各个项目,不能一次导入多个。而且,在同一个repository下,各个子项目的分支也统一,不用每个项目都搞几个分支,最后编译一次,某个分支的版本还得各个项目来回切。简直就是蛋疼。
问题2.
git如果想在某一个repository下的某个目录下新建一个新的repository,应该怎么做?
大概思路是这样的,主要是得 屏蔽外层repository对于内层文件的影响,我觉得可以在外层ignore中加入对应项目文件夹的过滤。然后在新建的这个repository中执行相关的init以及add remote等操作。
另外如果不ignore对应的目录,就必须得在对应目录空的时候init,才能顺利的添加remote并push到其中代码,不然总是和外层的repository搅合在一起。(我用的是目前github.com官网最新的wnidows git客户端)