git - 重用另一个开源项目中的一小部分文件的最佳方法是什么?

标签 git github git-fork

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

  • 一些样式表,
  • CSS,
  • 一个小模块,或者
  • LaTeX 模板。

我所需要的只是其他项目的一小部分。通常其他项目的范围和功能与我的相差很远。

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

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

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

当然,与另一个项目的内部组织建立刚性联系是有风险的。但这不是这里的问题。

有什么想法吗?

最佳答案

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

  • 添加第一个存储库的分支作为 submodule在我自己的项目存储库中
  • 在我的项目中使用符号链接(symbolic link)来获取我需要的几个文件(指向子模块所需文件的符号链接(symbolic link))

这样:

  • 我可以在项目中的任何位置使用这些文件
  • 每次修改它们时,我实际上都会更改子模块存储库中的内容,这使得更容易识别更改并发出 pull 请求

关于git - 重用另一个开源项目中的一小部分文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66522101/

相关文章:

Git 忽略 Release 文件夹但包含特定的 Libraries\Release 文件夹

git - 如何按首次添加到 Git 存储库的时间列出文件?

testing - 用于类/作业自动测试和评分的 Travis CI

Git 同步到上游 : Newly created branch not showing in my fork

git - 从 github fork 安装 gem

git - 如何更新或同步 GitHub 上的 fork 存储库?

混帐获取 : Cannot allocate memory

angularjs - 致命的 : unable to access 'https://github.com/gabelerner/canvg.git/' : Peer reports incompatible or unsupported protocol version

Git 将功能分支的历史更改为新分支?

ruby-on-rails-3 - 我可以将我的 heroku git repo 导入到 bitbucket 中吗?如何?