除了 git,有没有其他办法同步一整个工作栈? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
Hanggi
V2EX    云计算

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

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

    有什么好的方法同步多个系统吗?(或者说是这么架构不合理,或自己 git 用得不够精髓?)
    15 条回复    2018-05-29 08:59:42 +08:00
    zeromake
        1
    zeromake  
       2018 年 5 月 28 日
    用 `git submodule` 试试看?
    v2dead
        2
    v2dead  
       2018 年 5 月 28 日
    docker 了解一下?
    Hanggi
        3
    Hanggi  
    OP
       2018 年 5 月 28 日
    @zeromake git sub 有在用,但是不想破坏开源库本身的版本控制,以便经常更新。
    Hanggi
        4
    Hanggi  
    OP
       2018 年 5 月 28 日
    @v2dead docker 给系统加了一层,不会对性能有影响吗
    814084764
        5
    814084764  
       2018 年 5 月 28 日   1
    repo 了解一下?
    qiyuey
        6
    qiyuey  
       2018 年 5 月 28 日 via Android
    @Hanggi 你别把 Docker 部署到云主机上就行
    EricXuu
        7
    EricXuu  
       2018 年 5 月 28 日 via Android
    @Hanggi git submoudle 不就是为了保持子模块的提交独立?
    Hanggi
        8
    Hanggi  
    OP
       2018 年 5 月 28 日
    @EricXuu 这个确实是一个问题。我用的那个开源库更新程序版本的时候要求在版本库中抓取最新版本分支,检录,合并, 或者切换分支的方法更新版本。这样我就必须保留他自身的 git 库,而且我不知道它会替换掉我哪些文件。有办法让同一个目录下共存两种库吗?
    wellsc
        9
    wellsc  
       2018 年 5 月 28 日 via iPhone
    Docker compose 就够了
    lightening
        10
    lightening  
       2018 年 5 月 28 日
    @Hanggi 如果你是 Linux 系统,不会,因为 Docker 本质其实只是个 chroot 环境而已。Windows 和 Mac 上是用虚拟机的 Linux 实现的,会。
    Hanggi
        11
    Hanggi  
    OP
       2018 年 5 月 28 日
    @lightening 服务器当然是 linux,刚才看了几个测评说对性能损耗不大,可以忽略不计,但是对网络 IO 和硬盘 IO 有一定性能影响。看来数据库单独备份,软件打包是可行的。
    lightening
        12
    lightening  
       2018 年 5 月 28 日 via iPhone
    @Hanggi 数据库本来就不建议放 docker。容易误删。另外 docker container 一般是做成 stateless 的,方便按需删减。
    Rheinmetal
        13
    Rheinmetal  
       2018 年 5 月 28 日 via Android
    整个环境 docker 好用
    要是用 git 解决
    git 仓库可以不叫 .git
    改一个环境变量 就行
    breezeFP
        14
    breezeFP  
       2018 年 5 月 28 日
    一楼的方法可以试试
    owt5008137
        15
    owt5008137  
       2018 年 5 月 29 日 via Android   1
    git submodule 和 git subtree
    你要对开源仓库做修改正确的方法是 fork 一个分支然后在你自己 fork 的分支上改。每次更新的时候 fetch 源仓库然后 rebase
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5571 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 03:22 PVG 11:22 LAX 19:22 JFK 22:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86