代码之家  ›  专栏  ›  技术社区  ›  l0b0

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

git
  •  1
  • l0b0  · 技术社区  · 14 年前

    我有一个回购协议,其中包含 single file . 我想把那个文件添加到 another repo ,保持与旧文件的链接(这样我就可以推/拉以保持最新),同时保持所有其他文件不在。目标是,拉取第二个存储库的人也应该获得实用程序功能,而不必处理多个repo。比如说 cherry-pick 或者一些特别的 remote / clone 语法,还是必须将实用程序函数移到单独的repo中?

    编辑:看起来像 Partial sharing of git repositories 还有GitHub's Working with subtree merge 可能是相关的;检查一下。

    编辑2:在阅读了关于子树合并的内容之后,如果我能找到“要读取/合并的树对象的id”,就可以完成这项工作了 git help read-tree . 这只是一个提交ID吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Cascabel    14 年前

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

    你可以找到你需要的树 git ls-tree 在目录中:

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

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