git的新手,我搜索了很多,没有找到一个强大的解决方案。
我有两个项目,A和B.
A包含[A code]
和[SHARED CODE]
,B包含[B code]
和[SHARED CODE]
。
使用svn,我可以在项目B中放置一个svn external,它链接到项目A的子目录,意思是A->[SHARED CODE]
。
然而,似乎git不允许部分克隆,所以如果我选择子模块,我必须做3个项目:SHARED CODE
,A
和B
,这很痛苦。
更糟糕的是,当我在A->[SHARED CODE]
(这是一个子模块)中进行一些更改时,似乎很难提交并推送它,git pull
上的B
操作不会自动将最新代码提取到B->[SHARED CODE]
。
那么任何方便的解决方案呢?感谢。
答案 0 :(得分:2)
然而,子模块仍然是正确的解决方案,尤其是自git1.8.2:
以来请参阅“Git submodule new version update”
子模块可以配置为遵循最新的分支,因此这足以将所有子模块更新为最新的提交:
git submodule update --remote
是的,这意味着3个回购,但这与git repo应该扮演的角色一致:它代表一个“组件”,这是一个具有自己独立历史的连贯文件组。