如何保持自己的应用和关联的第三方框架同步更新?
Posted 世有因果知因求果
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保持自己的应用和关联的第三方框架同步更新?相关的知识,希望对你有一定的参考价值。
在当今web开发中,有越来越多,越来越成熟的开源应用框架来支持我们快速开发web应用。但是有很多情况下这些应用框架本身也在不断地新增重要功能,解决部分bug,
那么我们如何能够在保持自己工作向前走的情况下,又能择机将我们的应用框架本身做无缝升级?git的工程实践有什么可以应用的呢?本文希望能够有所探讨。
我做了以下实验,暂时看是可行的:
1. 首先假设第三方库为l.git;
2. 一般首先clone l.git, 做基本的配置后生成我们的应用app.git 注意:l.git和app.git一般都是裸库;
3.john(码农) clone一个app.git,形成自己的开发库,比如叫做dev;
4.john持续递交代码在dev上,并且最终push到app.git中央库中;
5.假设l.git的开发人员不断迭代他们的框架代码,到现在l.git和app.git中的基础框架代码已经开始分叉了,现在我们希望做一下框架本身的更新;
6.项目经理tom clone一个app.git ,我们叫做sync, 注意这时sync库已经包含了最新的应用代码和比较老的框架代码;
7.tom 创建一个upstream remote: git remote add upsteam l.git;
8.tom 拉取最新的库代码: git fetch upstream master
9.tom 执行rebase命令: git checkout master;git rebase upstream/master;到这里我们的master分支就已经是在最新的框架代码之上了,但是问题来了:这时master分支和app.git的master有了分叉,这时git push origin master的话,git会拒绝并且提示我们git pull,我们到底怎么半呢?
9.1要么再次git pull(隐含会rebase),要么直接merge,但是这两个工作好像都会把以前在第9步中冲突解决的痛苦过程再演一遍,我感觉不是好办法;
9.2直接git push -f origin master,貌似这个办法简单粗暴有用,但是我的问题是:由于历史被覆盖,如果这个master分支上还有其他的分支,是否会产生问题呢?有待继续验证更新。
以上是关于如何保持自己的应用和关联的第三方框架同步更新?的主要内容,如果未能解决你的问题,请参考以下文章