关于发布新版本时如何使用git子树/分支排除目录的建议 我正在开发一个C++库,它将通过Git子树来消耗多个客户。我的回购协议的目录结构如下所示: foo/ ├── extra ├── Makefile ├── src └── tests

关于发布新版本时如何使用git子树/分支排除目录的建议 我正在开发一个C++库,它将通过Git子树来消耗多个客户。我的回购协议的目录结构如下所示: foo/ ├── extra ├── Makefile ├── src └── tests,git,git-branch,git-subtree,Git,Git Branch,Git Subtree,客户只对使用“src”目录中的内容感兴趣,因此我希望他们能够对Makefile和“src”目录进行子树分析,并排除所有其他内容。我有一些想法,但我不确定它们是否实用。以下是我目前的清单: 维护一个客户分支,每次从主服务器合并时,我都会手动删除不需要的文件和目录 让客户在子树添加/拉取后使用git删除不需要的目录 将我的回购协议分为“foo测试”和“foo”,其中foo将只包含客户可见的文件,“foo测试”将包含其余文件 选项1似乎是最简单的,但我担心它可能会变成一个大麻烦。选项2可以工作,但它要

客户只对使用“src”目录中的内容感兴趣,因此我希望他们能够对Makefile和“src”目录进行子树分析,并排除所有其他内容。我有一些想法,但我不确定它们是否实用。以下是我目前的清单:

  • 维护一个客户分支,每次从主服务器合并时,我都会手动删除不需要的文件和目录

  • 让客户在子树添加/拉取后使用git删除不需要的目录

  • 将我的回购协议分为“foo测试”和“foo”,其中foo将只包含客户可见的文件,“foo测试”将包含其余文件


  • 选项1似乎是最简单的,但我担心它可能会变成一个大麻烦。选项2可以工作,但它要求用户在子树后运行命令。最后,选项3似乎最有意义,但它需要维持2份回购协议。这里有没有人有类似的要求?有没有关于处理这一问题的最佳方法的建议,这些建议不会成为今后维护方面的难题?

    将测试排除在发行版之外的原因是什么?测试通常是文档的一种形式,因为它们是如何调用函数或使用类的示例。这些对您的客户来说非常方便。避免客户回购中的膨胀,并只向他们提供他们想要/需要的东西。客户将使用git子树安装许多库,“extras”和“tests”子目录将包含许多文件。如果他们有需要,他们总是可以克隆完整的repo来访问修剪过的文件。从分发中排除测试的原因是什么?测试通常是文档的一种形式,因为它们是如何调用函数或使用类的示例。这些对您的客户来说非常方便。避免客户回购中的膨胀,并只向他们提供他们想要/需要的东西。客户将使用git子树安装许多库,“extras”和“tests”子目录将包含许多文件。如果他们有需要,他们总是可以克隆完整的repo来访问修剪过的文件。