如何优雅地同时改动多个代码仓库的一些文件? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zonghow
V2EX    问与答

如何优雅地同时改动多个代码仓库的一些文件?

  •  
  •   zonghow 2022-11-16 20:49:30 +08:00 1469 次点击
    这是一个创建于 1132 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这些代码仓库都是使用同一个基础模板生成的业务仓库

    但其中有一些 “比较固定” 的文件,比如 Dockerfile 、 .gitlab-ci.yml 、Makefile 这些

    会经常有一些优化改动,需要在多个仓库中同步修改、提交

    除了手动一个一个仓库修改,有什么优雅点的方法么

    我想到的是写个 CLI ,然后通过项目里某个配置文件,去生成,然后覆盖
    第 1 条附言    2022-11-16 21:48:22 +08:00
    虽然项目模板的首次生成可以通过模板仓库或者 CLI 的形式实现,但后续模板的更新,如何应用到已有的项目中去,小到 Dockerfile 的修改,大到文件名,文件目录修改。目前是手动更新所有项目,之后项目变多了成本也会相应增加。
    5 条回复    2022-11-17 14:51:07 +08:00
    zonghow
        1
    zonghow  
    OP
       2022-11-16 20:56:06 +08:00
    标题起的可能有点问题,想问的重点是代替一个个文件复制粘贴的方式,而不是多个仓库同时改动。
    jimliang
        2
    jimliang  
       2022-11-16 22:02:26 +08:00
    可以做成模板什么的,比如说 .gitlab-ci.yml:
    ```
    include:
    - project: 'gitlab/cicd-tmp'
    ref: master
    file:
    - '/templates/xxx.yml'
    ```
    hyperos
        3
    hyperos  
       2022-11-17 11:31:21 +08:00
    看看能不能抽出来当成独立仓库,然后这个仓库通过 submodule 导入
    zonghow
        4
    zonghow  
    OP
       2022-11-17 11:55:08 +08:00
    @kaicity 有一些文件需要放置在特定的目录里比如根目录。。Submodule 最少得是个文件夹吧
    hyperos
        5
    hyperos  
       2022-11-17 14:51:07 +08:00
    那要不把这些文件同时用上另一套版本控制软件,比如 svn ,这样更改的时候更新一下 svn 就行了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     914 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:10 PVG 05:10 LAX 13:10 JFK 16:10
    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