Git 多个分支分别对应不同网站,如何管理和更新?

2017-11-07 17:15:53 +08:00
 iguoji

在主分支 Master 开发到一定阶段后,创建了 A、B、C 三个新分支

四者对应着四个网站,都有相同和不同的地方

有些相同的地方在更新好一个分支后,又需要依次推送到其他分支

有什么解决办法吗?

5481 次点击
所在节点    程序员
25 条回复
azygote
2017-11-07 17:28:33 +08:00
分支不是这么用的,你的需求可以考虑把整个系统模块化。
shiina
2017-11-07 17:31:24 +08:00
错误的分支使用方式😐
vikeria
2017-11-07 17:31:38 +08:00
楼上加一
secends
2017-11-07 17:32:43 +08:00
参考这个命令 git push origin HEAD:master, 看 git help push
iguoji
2017-11-07 17:38:42 +08:00
@azygote
@shiina
@vikeria
@secends

没懂,求指点。
azygote
2017-11-07 17:42:41 +08:00
@iguoji 把整个系统模块化,四个网站可以共用一部分模块,然后四个网站不同的功能用分别开发不同的模块(同一分支下)。如果做不到那还是老老实实分成 4 个 git 仓库吧。
flowci
2017-11-07 17:47:02 +08:00
一个项目一个仓库,一个项目多个分支。
cxbig
2017-11-07 17:47:56 +08:00
最好是遵循 Git Flow,且一个项目一个 repo。
共用的部分做成独立模块,用 submodule、cherry-pick 或各语言的包管理器加载
mooncakejs
2017-11-07 17:49:26 +08:00
如果有不涉及二次开发的公共代码模块,开 4 个项目,用 submodule
4 个项目可以自己选择公共项目的版本,要升级就 update submodule。
开 4 个分支也行,新功能也开分支,然后分别合并到二次开发版本。
ryd994
2017-11-07 18:34:27 +08:00
理论上可以在 master 改了再 cherry pick
但是长远来讲可能会很复杂也很危险
还是 submodule 吧,现在跑还来得及
l8mEQ331
2017-11-07 19:14:05 +08:00
我现在管理的公司的一个 MTK rom 也是这种情况,有多个版本, 每个版本都是一个分支。每次加一些功能或者改东西,有可能是所有版本都要加,有可能是只是某些版本加。现在的做法是用 cherry-pick 来手动的每个版本加上新的功能。
yidinghe
2017-11-07 20:40:17 +08:00
每个分支一个远程啊……那敲命令太复杂了,装 SourceTree 之类的图形客户端吧。
satanandroid
2017-11-07 20:54:42 +08:00
公共部分 用 submodule 啊~
xem
2017-11-07 23:08:14 +08:00
把公共模块单独建立项目,然后再把各个网站单独建立项目,包含各个公共模块项目
SoloCompany
2017-11-08 00:51:20 +08:00
两个选择
1. 模块化,提取公共抽象为 1~n 个模块( repo ),其余部分每个网站一个 repo
2. 实在不适合模块化,那么就让 4 个网站共用一套代码,通过 domain name 或配置来进行差异化渲染
colorwin
2017-11-08 01:40:33 +08:00
可能不是最好的方法但比较简单。从 master 分支切出一个 common 分支,开发好功能好后 merge 到需要该功能的分支
66beta
2017-11-08 09:02:25 +08:00
你的情况,算是多个 master 分支...
可以把公共代码抽出来放一个文件夹,4 个网站 4 个文件夹,改什么就拉一个 feature 分支,改完合回去,互相不影响

跟你类似的业务情况
vue-cli 分网站(渠道),多页面打包+vue-router,共享基础 JS 库和组件库
打包完后:
a.html
b.html
c.html
d.html
static(文件夹)
asuraa
2017-11-08 09:11:07 +08:00
yuhr123
2017-11-08 09:16:35 +08:00
一个站点一个仓库! git 又不是租来的,楼主怎么还舍不得用啊。

小规模多人协作:所有人 dev 分支开发,PR 合并到主仓库 master。
独立开发:本地 master 开发,测试无误 push 到仓库。

本人喜欢拿分支做临时性实验,用后立即销毁,不愿意管理分支,主要是因为懒。
allce231
2017-11-08 09:53:44 +08:00
你们说开 4 个仓库的脑袋被门夹了?

他们有的需求可能是 4 个分支都要改的,那这样可以在 master 改了合并过去,4 个仓库的每个仓库改一次吗?

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

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

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

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

© 2021 V2EX