除了 git,有没有其他办法同步一整个工作栈?

2018-05-28 10:57:03 +08:00
 Hanggi
现在服务器上有一套网站系统,
比如:有一套产品官网程序(可能是自己用框架写的)。官网还有一个开源的定制的博客系统与官网相连,可以互相跳转或者简单的数据交互。此外还有一个开源的论坛系统,用于用户讨论和问题反馈。这三个系统组成了一整个网站,而这三个系统可能用的数据库还不一样(开源程序默认数据库,比如博客可能用了 mysql,论坛用了 MongoDB,自己的网站用了 pg )。
目前这个架构用 git 同步,但是有几个问题:
一个是开源库本身可能又自带 git,如果用自己的 git 库覆盖会对以后的升级更新带来不便。而且经常需要对开源系统进行各种定制化的修改(如:UI,功能,交互什么的)。
还有就是测试阶段偶尔要部署到其他地方。

有什么好的方法同步多个系统吗?(或者说是这么架构不合理,或自己 git 用得不够精髓?)
3443 次点击
所在节点    云计算
15 条回复
zeromake
2018-05-28 11:36:35 +08:00
用 `git submodule` 试试看?
v2dead
2018-05-28 12:28:58 +08:00
docker 了解一下?
Hanggi
2018-05-28 12:51:05 +08:00
@zeromake git sub 有在用,但是不想破坏开源库本身的版本控制,以便经常更新。
Hanggi
2018-05-28 13:00:05 +08:00
@v2dead docker 给系统加了一层,不会对性能有影响吗
814084764
2018-05-28 13:05:04 +08:00
repo 了解一下?
qiyuey
2018-05-28 13:11:49 +08:00
@Hanggi 你别把 Docker 部署到云主机上就行
EricXuu
2018-05-28 13:44:21 +08:00
@Hanggi git submoudle 不就是为了保持子模块的提交独立?
Hanggi
2018-05-28 14:41:15 +08:00
@EricXuu 这个确实是一个问题。我用的那个开源库更新程序版本的时候要求在版本库中抓取最新版本分支,检录,合并, 或者切换分支的方法更新版本。这样我就必须保留他自身的 git 库,而且我不知道它会替换掉我哪些文件。有办法让同一个目录下共存两种库吗?
wellsc
2018-05-28 15:42:34 +08:00
Docker compose 就够了
lightening
2018-05-28 16:00:44 +08:00
@Hanggi 如果你是 Linux 系统,不会,因为 Docker 本质其实只是个 chroot 环境而已。Windows 和 Mac 上是用虚拟机的 Linux 实现的,会。
Hanggi
2018-05-28 16:02:29 +08:00
@lightening 服务器当然是 linux,刚才看了几个测评说对性能损耗不大,可以忽略不计,但是对网络 IO 和硬盘 IO 有一定性能影响。看来数据库单独备份,软件打包是可行的。
lightening
2018-05-28 16:41:21 +08:00
@Hanggi 数据库本来就不建议放 docker。容易误删。另外 docker container 一般是做成 stateless 的,方便按需删减。
Rheinmetal
2018-05-28 16:45:28 +08:00
整个环境 docker 好用
要是用 git 解决
git 仓库可以不叫 .git
改一个环境变量 就行
breezeFP
2018-05-28 18:21:10 +08:00
一楼的方法可以试试
owt5008137
2018-05-29 08:59:42 +08:00
git submodule 和 git subtree
你要对开源仓库做修改正确的方法是 fork 一个分支然后在你自己 fork 的分支上改。每次更新的时候 fetch 源仓库然后 rebase

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458290

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX