克隆的Git存储库不包括子目录

时间:2010-11-23 15:24:07

标签: git merge clone

我有一个有很多历史的Git存储库。我想让其他人可以访问它,但其中一个目录包含无法分发的专有代码。有没有什么方法可以克隆那个排除该目录的存储库(有历史记录)?

奖励:我还希望能够将对旧主存储库中的“公共”代码的更改合并到克隆中。

1 个答案:

答案 0 :(得分:1)

除非您愿意重写每个提交哈希,否则不能这样做。如果您决定重写存储库的历史记录以排除该目录,则必须与作为存储库的贡献者或使用者的任何人进行协调。

您需要filter-branch来调整树。该脚本最初需要创建一个存储库,该存储库是存储库中的子模块。只要有更改,它就需要提交到内部存储库,并调整父模块中的子模块引用,并在该级别提交。

您现在可以发布回购,但没有人能够执行git子模块操作,但这就是您想要的。