2013-07-02 38 views
1

新来的git,我搜查了很多,没有找到一个强大的解决方案。svn external for git?

我得到了2个项目,A和B.
A包含[A code][SHARED CODE],B包含[B code][SHARED CODE]

使用svn,我可以在项目B中放置svn外部项目,链接到项目A的子目录,即A->[SHARED CODE]

但是,它似乎git不允许部分克隆,所以如果我选择子模块,我必须使它3个项目:SHARED CODE,AB,这是痛苦的。

更糟糕的是,当我在做一些A->[SHARED CODE]变化(这是一个子模块),似乎挺难承诺,推动它,并在B一个git pull操作不会自动拉最新代码B->[SHARED CODE]

因此,任何方便的解决方案呢?谢谢。

+0

似乎http://blog.quilitz.de/2010/03/checkout-sub-directories-in-git-sparse-checkouts/comment-page-1/是一个解决方案,但尚未弄清楚,但在它上面工作。 – user2530437

回答

2

然而,子模块仍然是正确的解决方案,尤其是因为git1.8.2:

请参阅“Git submodule new version update

子模块可以被配置为遵循最新的一个分支,因此这将是足够的更新所有子模块的最新承诺:

git submodule update --remote 

是的,这意味着3个回购,但是这是一个混帐回购协议应该发挥的作用是一致的:它代表着“组件”,这是一个连贯的组文件与自己的独立历史。

+0

谢谢朋友,但目前我更喜欢稀疏结帐 – user2530437

+0

@ user2530437在http://stackoverflow.com/a/13738951/6309,我想?看上去不错。 – VonC

+0

@ user2530437小心:这不是git方式,可能会在未来导致您的问题。 Git不是svn,如果你试图这样做,它会抵制;)。 – Chronial