引言
很多人很喜欢这个Dooy-AI>>项目,并且偷偷修改了作者的源码,也重新构建了镜像并成功启动,随着时间的推移,作者开源程序也随之更新了版本,我们想要保留更改内容的同时,还想要合并作者的新改动(增量更新,又想好又想巧!),笨办法是把作者最新源码拿过来再重新改一遍,这种方法虽然简单粗暴,但是费时费力,并且有些东西自己改过之后都忘记了,做一两次可以,久而久之每次更新修改着实麻烦,所以急需一种简单高效的更新方案。
注意,本文是基于上一篇《拥有私人GPT:chatgpt-web-midjourney-proxy完整部署指南》的续篇,着重补充讲解关于如何快速增量更新已经搭建好的AI程序。如果您已完成了该程序(以下简称Dooy-AI)的Docker搭建,可以继续阅读,否则建议先返回阅读上篇内容。
本文讲解开源程序的更新方法,适用于Dooy-AI的同时,方法也可沿用到其它开源程序,可谓一劳永逸。
阅读并按照本文实操后,您将大概率获得如下所有能力:
- 效率提升:更新由原来的折腾至少1小时缩短为5分钟搞定,大大提升了效率;
- 失误率下降:遗漏修改代码的几率大大降低;
- 开源程序更新技能:永久性习得所有Docker类程序增量同步更新技能。
操作步骤
192.30.253.112 github.com
103.245.222.133 assets-cdn.github.com
151.101.25.194 github.global.ssl.fastly.net
151.101.24.133 assets-cdn.github.com
151.101.72.133 avatars1.githubusercontent.com
151.101.72.133 avatars2.githubusercontent.com
151.101.229.194 github.global.ssl.fastly.net
不同的地区可能对应的该区域响应IP不一样,如果以上IP加入后速度没有提升,还可以精准查询当前区域适配的Github服务器IP,查询方法请参考文章《Github 上传、下载过慢的解决方案》。
Github桌面版完成以上操作后,你将看到以下界面:
2、从宝塔下载更新前程序源码。
如果你上次构建完镜像没有其它动作,大概率你的程序还在宝塔面板的“文件”菜单中,找到你的程序文件并右键创建压缩包文件,并下载。
3、为Dooy-AI新建Github仓库。
我们需要在Github上新建一个空的代码仓库,这样做一方面可以连接上游作者原仓库进行合并代码的动作,另一方面还可以一键部署到Vercel进行错误检查,毕竟构建镜像并在docker容器启动程序更复杂一些,这样先从Vercel跑一遍能极大的降低程序部署返工几率。
4、把新建的代码仓库克隆到本地。
因为Github网页端操作功能十分有限,所以我们需要用Github desktop将云端仓库克隆到本地电脑进行操作。
完成克隆后,你可以从程序中看到这个仓库的信息,如下图所示,可以点击靠右侧的Fetch origin进行云端和本地的数据同步。
5、本地加入我们的程序代码并同步云端。
找到Github本地仓库文件位置,并解压第2步从宝塔下载的程序文件到当前代码仓文件夹内(注意,复制过程提示的.git文件无需覆盖,跳过即可)。
完成复制后,返回Github desktop会收到提交提示,填写并提交即可。
6、合并更新
合并的原理是通过Git命令可以关联上游仓库(也就是作者仓库)作为本仓库的一个分支upstream,然后更新该分支内容使其与上游作者仓库内容一致,最后将分支与本仓库代码合并(merge)即可获得增量更新,如果遇到冲突请在VScode中手动解决即可。具体内容可参考早期文章《Github中clone仓库项目的版本更新方法(非fork)》。
第一步,打开Github desktop的Command Prompt命令工具,并输入以下命令:
git remote add upstream https://github.com/Dooy/chatgpt-web-midjourney-proxy.git
第二步,拉取上游仓库更新的内容。如果这里的远程仓库名字不叫upstream,请替换成你实际的远程仓库名,比如cangku等,这些都是你在第一步自己命名的,前后保持一致即可。
git fetch upstream
第三步,本地仓库代码与远程上游作者代码合并。
第四步,处理冲突。
第五步,本地合并后的代码推送给github。
至此代码合并完成。
7、Vecerl部署测试
注意,此步骤可跳过。如果你想验证修改是否满意,而不希望构建完成镜像后运行出错再返工,则建议你执行该步骤。
打开Vercel>>并通过你的Github账号授权登录则会同步代码仓。
找到Add New并新建一个项目。
cd www/wwwroot/dooy-ai2024
docker build -t chatgptxxxx .
重新构建容器的命令请参考上文《拥有私人GPT:chatgpt-web-midjourney-proxy完整部署指南》。
至此,恭喜你的程序已完成和作者同步的更新工作!