如何处理 git 存储库中的外部项目

How to handle external project in git reposiotry

场景如下:

我正在从事一些使用某些库的项目。我在库填充错误报告中发现了一个错误,但不想等待库作者修复它。 我查看了源代码,发现我可以添加适合我的解决方法(但可能不适用于所有使用此库的人)。

我想将这个项目(在 github 上)添加到我的项目中,修复一个错误,当作者进行官方错误修复时,然后用包管理器中的库替换它。

看起来像是可以使用的地方 git submodules 但是如何在不将更改推送到原始仓库的情况下将修复程序传递给同事?

Lukas-reineke 思路正确

您应该 fork github 项目,然后修复错误。然后做两件事:

  1. 向项目所有者发送拉取请求。他们通常很乐意接受错误修复,只要修复符合贡献准则。

  2. 您需要构建和打包 您的 分支。根据您使用的打包技术(npm、nuget 等),此过程将推迟。然后您需要分发这个自定义版本的依赖包,以便您的同事和您的构建服务器可以访问它。简单的方法是将其与您的存储库一起检入,但最好将其托管在内部软件包存储库中。

一旦原始库作者接受了您的修复并发布了新的官方软件包,您就可以返回使用他们的版本。