在我目前的雇主那里,我们正在使用托管在Github上的开源项目作为应用程序的一部分。我一直在从事这个项目,既添加了我们需要的一些功能,又将其与我们的构建系统集成在一起。我的经理和我都同意,我们将在合理范围内尽可能多地将我们的工作提交给开源项目。我的问题是,最好的工作流程/技术是什么,以这样一种方式来维护我的Git提交,以便我可以轻松地分离出有意义的东西,并重新添加到开源项目中-漏洞修复和足够通用的新功能-特定于我们项目的内容,例如构建位置和应用程序常量。
到目前为止,我一直在维护一个私有的Git分支,在其中我以适当的粒度提交所有更改。然后cherry-pick
,我用于将可开源的提交添加到master分支,并将其提交回Github。
似乎我应该使用merge来执行此操作,这样我就不会继续创建具有相同内容的单独提交,但是我不确定如何在排除公司特定的提交并保持合理的工作流程的同时执行此操作。
例如,我想我可以在私有分支上对master和公司特定的东西提交可开源的东西,然后根据需要将master合并到该分支中,而使master分支指向合并之前的提交,这样我就可以再次向其提交可开源的内容,然后再次合并。这个工作流程似乎很尴尬,因为我要做的每件事都要事先确定它属于哪个分支,将其处理为看起来像完成的部分,然后提交并合并再进行测试。我真正喜欢Git的一件事是,要做任何使应用程序正常工作的事情,然后决定以后如何以及在何处提交更改,这是多么容易。据我所知,如果您目前在分支机构中并且已经完成了一些工作,
我正在做一个合理的工作流程以获得长期贡献吗?有人可以推荐一个可能更好的不同工作流程吗?为什么会更好?