基于另一个repo的子文件夹的Git存储库

时间:2013-12-01 20:35:04

标签: git

我有一个包含子目录的仓库。

我想将该子目录转换为旋转git repo,然后将我自己的提交添加到其上。

我还希望能够将原始父repo中的更改合并到何时发生,但当然只会影响子目录中文件的提交。

这是可以做到的吗?

2 个答案:

答案 0 :(得分:4)

这正是git subtree命令的设计目的。 (请注意,这与“子树合并策略”不同)。您可以在此处找到有关git subtree的更多信息:

答案 1 :(得分:1)

简短的回答:这是非常重要的,我怀疑是否值得你这么做。我只考虑分支整个存储库,只对子目录进行更改。

那就是说,如果你真的需要自己的子目录,我会想到两个基本选项:

  • 只需将文件从子目录复制到新的存储库中,然后将其从旧存储库中删除。你会失去历史,但这很容易。

  • 创建一个新的存储库,将旧的存储库添加为远程存储库,然后从旧的存储库中选择修改您感兴趣的目录的提交。这会将历史记录保存在新的存储库中,但它会给出您是一个包含单个目录的存储库,您可能不需要它。

第二种策略可以合并旧存储库中的更改;您可以根据需要简单地从旧存储库中选择提交。