仅重用来自另一个开源项目的一小部分文件的最佳方式?

Best way to reuse just a small set of files from another Open-Source project?

图像 Github 上的另一个开源项目提供了一些我想在我的项目中重用的部分,比如

我只需要另一个项目的一小部分。通常其他项目的范围和功能与我的相去甚远。

从实践角度组织此问题的最佳方式是什么(假设现有许可证涵盖法律角度)?理想情况下,合并来自上游存储库的改进并将我创建的本地改进的拉取请求发送回原始项目仍然是可能的。

a) 我可以将另一个 Github 存储库添加到我项目的 requirements.txt 中,安装它并在我的安装过程中选择性地删除安装后不需要的所有部分 (setup.py 等)。 b) 我可以 fork 另一个 Github 存储库,将我的 fork 减少到我需要的文件,并将我的 fork 添加到我的新项目的要求中。

我找到了 Linking a single file from another git repository,但他并没有真正满足我的需求。

当然,对另一个项目的内部组织建立死板的link是有风险的。但这不是这里的问题。

有什么想法吗?

如果您真的需要在存储库的某些文件和您自己的项目存储库之间保持强 link,我会:

  • 添加一个 fork 第一个存储库作为 submodule 在我自己的项目存储库中
  • 在我的项目中使用 symlinks 来获取我需要的几个文件(symlink 到子模块所需的文件)

这样:

  • 我可以在项目中的任何地方使用这些文件
  • 每次我修改它们时,我实际上更改了它们在子模块存储库中的内容,这使得更容易识别更改,并提出拉取请求