我有一个有很多历史的Git存储库。我想让其他人可以访问它,但其中一个目录包含无法分发的专有代码。有没有什么方法可以克隆那个排除该目录的存储库(有历史记录)?
奖励:我还希望能够将对旧主存储库中的“公共”代码的更改合并到克隆中。
答案 0 :(得分:1)
除非您愿意重写每个提交哈希,否则不能这样做。如果您决定重写存储库的历史记录以排除该目录,则必须与作为存储库的贡献者或使用者的任何人进行协调。
您需要filter-branch
来调整树。该脚本最初需要创建一个存储库,该存储库是存储库中的子模块。只要有更改,它就需要提交到内部存储库,并调整父模块中的子模块引用,并在该级别提交。
您现在可以发布回购,但没有人能够执行git子模块操作,但这就是您想要的。