我在一家使用Linux构建嵌入式系统的公司工作。从历史上看,我们总是使用CVS来存储我们的内核工作。我们的内核最终成为:
的集合我们正处于这样一个阶段:我们希望在新版本上修改一些旧内核,并将我们古老的CVS工作流程修复为基于变更集的内容。显而易见的选择是git。
我正在努力想出一个明智的工作流程。我已经为我们的一个内核导出了我们的CVS存储库,并在相应的基础Linus内核之上有一组变更集。我从哪里开始?
我想拥有一个所有开发人员都提交更改的中央存储库。使用rebase将我们的变更集合转移到新的基础内核版本然后在新的中心分支上进行我们的开发是否安全?
获得工作流程的奖励积分,使我们能够轻松地分离出可能适合上游的变更。我厌倦了一直向前推进一小部分(或微小的)一般有用的变化。
答案 0 :(得分:8)
如果一个人没有推送所说的本地分支(因为该本地分支的历史已被重写),Rebase对integrating upstream branches进入一个本地分支是有利的。例如,请参阅"git workflow and rebase vs merge questions"。
专用的“公共”分支(即意图被推送)应该专用于每个开发人员Git存储库,以便merge/cherry-pick推送相关的更改。
潜在地,如果需要,可以共存几个公共分支,每个内核版本一个维护/修复。
然后可以设置一个中央仓库以集成(即拉动)其中推送的所有开发者分支。
有关合并工作流程和发布主题的更多信息,另请参阅"git releases management"。