在另一个回购中克隆Git repo的一部分

时间:2010-11-11 21:53:28

标签: git

我有一个repo,其中包含single file中的一些实用函数。我想以某种方式将该文件添加到another repo,保持链接到旧文件(因此我可以推/拉以保持最新状态),同时保留所有其他文件。目标是拉动第二个存储库的人也应该获得实用程序功能,而不必使用多个存储库。这是可行的,例如使用cherry-pick或某些特殊的remote / clone语法,还是我必须将实用程序功能移到单独的仓库?

修改:看起来像Partial sharing of git repositories,而GitHub的Working with subtree merge可能是相关的;检查他们。

编辑2:在阅读了关于子树合并之后,如果我能找到“要读取/合并的树对象的id”,那么它似乎就可以完成工作,如{{1 }}。这只是一个提交ID吗?

1 个答案:

答案 0 :(得分:2)

树对象与提交不同。树对象实质上代表一个目录。提交将包含表示工作树的树;该树可能包含其他树(子目录)以及blob(文件内容)。

您可以使用目录上的git ls-tree找到所需的树SHA1:

$ git ls-tree HEAD Documentation/howto
040000 tree 7f4e8e870f2e4e7682a344e9a305f065388553e2    Documentation/howto

你可能想看看git-subtree,它以友好的方式包装了很多这些东西。