将git存储库拆分为私有存储库和公共存储库

将git存储库拆分为私有存储库和公共存储库,git,Git,我有一个git存储库,我还私下在GitHub上托管它。我想将该存储库拆分为两个存储库,这样一些文件将保持私有,而其余文件将变为公共文件。我看到一些关于拆分git存储库的问题,但我没有发现任何强调公共和私有文件分离的问题,即防止敏感信息公开 作为一般示例,假设我有以下git存储库结构: my-repository | private-1.file | public-1.file | |———my-private-folder | | private-2.file | | p

我有一个git存储库,我还私下在GitHub上托管它。我想将该存储库拆分为两个存储库,这样一些文件将保持私有,而其余文件将变为公共文件。我看到一些关于拆分git存储库的问题,但我没有发现任何强调公共和私有文件分离的问题,即防止敏感信息公开

作为一般示例,假设我有以下git存储库结构:

my-repository
|   private-1.file
|   public-1.file
|
|———my-private-folder
|   |   private-2.file
|   |   private-3.file
|
|———my-public-folder
|   |   public-2.file
|   |   public-3.file
|
|———my-mixed-folder
|   |   private-4.file
|   |   public-4.file
理想情况下,我希望将其分为两个git存储库:

my-private-repository
|   private-1.file
|
|———my-private-folder
|   |   private-2.file
|   |   private-3.file
|
|———my-mixed-folder
|   |   private-4.file

我的主要要求是,
我的公共存储库
不会记录属于
我的私有存储库
的任何文件(重要的是,它们的内容)。如果某些提交同时包含公共文件和私有文件,只要私有存储库中没有公共文件的内容,我就可以将这些提交消息保留在日志历史记录中


有没有一种简单的方法来做这样的事情,或者这需要很多努力?

您好,欢迎使用SO。这是一项相当艰巨的任务。我会朝两个方向走:第一,公开回购,历史清白,不提及任何私人数据。它将作为大型超级项目(公共)的子模块导入。私有项目是相同的,一个更大的超级项目(私有),包括公共和私有数据。混合文件夹的问题是:子模块需要一个强大的根,也许你可以在那里修改树结构?如果没有太多的文件,你可以在它们的位置放置软链接来实现混合结构。非常感谢你的建议。最后,我找到的最简单的解决方案是使用外部工具--。我复制了我的存储库,然后手动从存储库的公共和私有副本中删除了不需要的文件。您好,欢迎使用SO。这是一项相当艰巨的任务。我会朝两个方向走:第一,公开回购,历史清白,不提及任何私人数据。它将作为大型超级项目(公共)的子模块导入。私有项目是相同的,一个更大的超级项目(私有),包括公共和私有数据。混合文件夹的问题是:子模块需要一个强大的根,也许你可以在那里修改树结构?如果没有太多的文件,你可以在它们的位置放置软链接来实现混合结构。非常感谢你的建议。最后,我找到的最简单的解决方案是使用外部工具--。我复制了我的存储库,然后手动从存储库的公共和私有副本中删除了不需要的文件。
my-public-repository
|   public-1.file
|
|———my-public-folder
|   |   public-2.file
|   |   public-3.file
|
|———my-mixed-folder
|   |   public-4.file