繁体   English   中英

用于维护项目扩展分支的Git工作流程?

[英]Git workflow for maintaining an project extension fork?

我们在GitHub上分叉了一个OSS项目,并为它添加了一些自定义扩展。 我们希望将我们做出的一些更改发送回原始项目(错误修复等),但其他更改是原始项目维护者目前不感兴趣的功能扩展。 我正在努力找出管理这种情况的最佳工作流程。

我希望我们的主分支包含(来自原始项目的提交)+(我们的贡献的错误修复)+(我们的自定义扩展)的总和。 我想我们需要一个按功能分支的模型,以便我们可以将错误修复与自定义扩展分开。 我们可以从我们的主分支启动自定义扩展分支,但我想我们也想要维护一个本地“origin”分支或者跟踪原始项目的东西,以便我们可以从那里启动没有被我们的污染的bugfix分支。定制的东西。 或者其他的东西。

任何人都可以建议最好的方法来构建这个工作流程,以便所有各种提交都去他们应该去的地方,没有人去他们不应该去的地方?

听起来像你已经回答了自己的问题。 创建一个名为“vanilla”的分支或跟踪上游主分支的东西,并有一个包含自定义扩展的“主”分支。 为你做的每件事创建分支。 对于错误修正,请从“香草”开始。 对于你自己的东西,从主人开始。 每隔一段时间,将香草合并为主人。 要将错误修正带到您的自定义扩展分支中,您可以直接将它们的分支合并到主服务器中,或者只是等待上游接受您的错误修复请求,然后从vanilla到master的下一个合并将包含错误修正。 这似乎是一个非常正常的工作流程。

您要设置的是一个长期的分支 ,为此您已经发现解决方案可能是设置一个与原始“vanilla”项目链接的特殊分支,并有一个主分支,您可以在其中维护自定义工作副本。

你需要记住的唯一一件事(从我的角度来看)是你想要同步变化时不应该合并两个分支,但在这种情况下( 当分支发散时 )有方便的Git Cherry-选择命令,允许您从一个分支进行单个提交并将其应用到另一个分支 ,这在维护分支的情况下特别有用,因为您可以轻松地将单个提交从一个分支交换到另一个分支...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM