Git 多仓库协作与补丁使用指南
1. 选择开发起始仓库的困境
在面对众多最终为同一个项目做贡献的仓库时,确定从哪里开始开发可能是一件困难的事。你或许会纠结贡献代码是直接基于主仓库,还是基于其他人专注开发特定功能的仓库,亦或是某个发布仓库的稳定分支。
若对 Git 如何访问、使用和更改仓库缺乏清晰认识,可能会陷入“因害怕选错起点而无法开始”的困境。又或者你已基于所选仓库的克隆版本开始开发,后来才发现这并非合适的起点。虽然它与项目相关,甚至可能是个不错的开端,但可能缺少其他仓库中存在的某些功能,而这在开发周期的后期才会显现出来。
另一个常见的起始点难题源于项目功能在两个不同仓库中同时开发,而这两个仓库单独来看都不是你工作的理想克隆基础。
你可以继续推进工作,期望自己的工作和各个仓库的工作最终能统一并合并到一个主仓库中。不过要记住,分布式开发环境的一个优势是能够进行并发开发,要利用好其他已发布的早期版本仓库。
此外,若从处于开发前沿的仓库开始,可能会发现该仓库过于不稳定,无法支持你的工作,或者在开发过程中该仓库被弃用。
幸运的是,Git 支持你从项目中任意选择一个仓库作为起点,即便它并非完美之选,之后还能对其进行转换、修改或扩充,直至包含所有所需功能。若之后想将更改分离回不同的上游仓库,可能需要谨慎且细致地使用单独的主题分支和合并操作来理清一切。
一方面,你可以从多个远程仓库获取分支并将它们合并到自己的仓库中,以获得现有仓库中其他地方可用的功能组合。另一方面,你也可以将仓库的起始点重置回项目开发历史中已知的稳定点。
2. 转换到不同的上游仓库
最简单的仓库混合和