Git仓库的克隆,不包括子目录

5

我有一个Git仓库,里面有很多历史记录。我想让其他人可以访问它,但其中一个目录包含不能分发的专有代码。有没有办法创建一个克隆仓库(包含历史记录),但不包括该目录?

额外附赠:我也想能够将在旧的主仓库中对“公共”代码进行的更改合并到克隆版本中。

1个回答

1

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

你需要使用filter-branch来调整树。脚本将需要最初创建一个作为仓库子模块的仓库。每当有更改时,它将需要提交到该内部仓库并在父级中调整子模块引用,同时在该级别进行提交。

现在你可以发布仓库了,没有人能够执行git子模块操作,但这正是你想要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接