git:在不同的地方使用远程子树

时间:2010-12-13 10:41:18

标签: git

我们有一个大项目B,我们想在其他项目的不同地方使用它的一部分。例如,

git remote add -f Bproject /path/to/B
git merge -s ours --no-commit Bproject/master
git read-tree --prefix=dir-BA/ -u Bproject/master:subdirA
git read-tree --prefix=dir-BB/ -u Bprorect/master:subdirB
git commit -m "Merge B project as our subdirectory"

效果很好。然后我们更新projectB的subdirA和subdirB并尝试使用子树合并策略:

git pull -s subtree Bproject master

它不是我们对它的期望。可能有人知道我们如何在其他项目中使用projectB的不同部分?

1 个答案:

答案 0 :(得分:1)

听起来您可能想要使用git-submodule,它允许您将另一个仓库的内容拉入您的仓库工作副本的子目录中。以下是使用git-submodule的一些很好的资源:

要明确的是,存储库的内容和历史仍然不同,但这种工作复制拼接通常是人们想要的。另请注意,子模块引用指向特定版本(如果您熟悉它们,则类似于svn externals),这意味着如果没有明确更新它们,它们将不会更改。

如果我误解了你想要做的事情,请告诉我。