在这种情况下,我的策略(还有很多其他策略)是:
1.) 在自己的存储库中为自己创建两个分支。一种具有可供发布的工作代码(您的发布分支),另一种用于开发/错误修复(您的开发分支)。
2.) 一般来说:您的开发分支从源代码和发布分支获取最新代码。这样,如果源有任何更改,您可以获取并保持最新。此外,如果您的开发方面有变化,您可以获取它。(例如,您准备发布,但刚刚意识到源 API 已更改。)。你最终会得到一个 devel 分支,其中包含你的(稳定的)更改加上源代码的更改,以及你可以处理的(不稳定的)修复。
3.) 一旦您准备好开发,将您的修复分支合并到您的发布分支中,并提供您的发布分支代码以供审查/集成给领导。如果同时发生了一些变化并且确实需要修复,您将返回到第 2 步。)。
我们的想法是随时都有一个发布,但不断地将更改和修复流入其中,使其保持稳定和最新,同时拥有一个不稳定的开发分支,其中包含来自所有来源的最新代码。
(project) src-branch ----*----*---*-----*----------*------M
\ \ /
(personal) devel/bugfix-branch ------M-*-*--*-------M-M---*--*----/--
\ / \ /
(personal) release-branch ---------------M-*---*----*--*---M----
------ time ----->
Legend: * commit, M merge
在最后一步中,您实际上会提供一个 git-diff 补丁,或者让负责人从您的发布分支(您的BARE存储库)中获取您的贡献,以便审查/集成到项目源中。