我有一个repo,其中包含single file中的一些实用函数。我想以某种方式将该文件添加到another repo,保持链接到旧文件(因此我可以推/拉以保持最新状态),同时保留所有其他文件。目标是拉动第二个存储库的人也应该获得实用程序功能,而不必使用多个存储库。这是可行的,例如使用cherry-pick
或某些特殊的remote
/ clone
语法,还是我必须将实用程序功能移到单独的仓库?
修改:看起来像Partial sharing of git repositories,而GitHub的Working with subtree merge可能是相关的;检查他们。
编辑2:在阅读了关于子树合并之后,如果我能找到“要读取/合并的树对象的id”,那么它似乎就可以完成工作,如{{1 }}。这只是一个提交ID吗?
答案 0 :(得分:2)
树对象与提交不同。树对象实质上代表一个目录。提交将包含表示工作树的树;该树可能包含其他树(子目录)以及blob(文件内容)。
您可以使用目录上的git ls-tree
找到所需的树SHA1:
$ git ls-tree HEAD Documentation/howto
040000 tree 7f4e8e870f2e4e7682a344e9a305f065388553e2 Documentation/howto
你可能想看看git-subtree,它以友好的方式包装了很多这些东西。