比如一个项目有很多文件夹,配置文件,源码等。源码都用的主分支,配置文件根据哪个项目用哪个分支的配置文件。 就想问一下实际真有人这么用吗?
1
xiaogu2014 17 天前
```不应该用多个分支来作为不同的 source of truth 。```
可以说下更多的 context 为啥要这么做。 写不同的配置文件不行吗。 |
2
foolishcrab 17 天前 via iPhone
新开一个文件夹放配置不是比新开分支好维护吗?配置加个 key 还得疯狂切分支?
|
3
joyhub2140 17 天前
开发阶段我们是在 master 主分支罗列所有的配置文件,然后分支再指定用哪个配置文件。
不过,生产环境的配置和源代码和二进制分发包分离,直接配置到服务器里,也就和分支什么没关系了。 |
4
aa514758835 OP 我从未见过这么使用的,然后为了这么使用需要做很多额外开发工作我就觉的这个方向有问题,明显是把问题复杂化了。
理论上用分支肯定是整个切的,然后有需要去合并到主分支,基本都是这么用的。 我感觉为什么这么做你们应该知道了,属于不会开车指导会开车的。 |
5
snake2004 17 天前
@xiaogu2014 如果不同项目的配置文件都在一个分支里,不同项目间都能看到别的项目的配置,无法实现项目间的权限控制。
|
6
dylanqqt 17 天前
听你说就感觉很繁琐
|
7
dzdh 17 天前
这时候就显示出来环境变量的重要性了
laravel / go / rust 都有 dotenv 吧 |
8
snake2004 17 天前
@aa514758835 如果不按项目分支,某个项目下版本就从主分支下,然后要改配置为某个项目,毕竟所有项目配置都在一个分支里,运行时用哪个项目配置要指定。如果按项目分支,就直接从项目分支同步后不用改直接可以运行。
|
9
newaccount 17 天前
看起来怎么那么像是传统 ERP 的版本管理方式呢
master 作为核心代码一直往前走,有客户购买就切个分支出来,这个分支的起点不一定是 master 之后这个分支会做一些针对这个客户的定制开发,开发的结果不会合并回 master ,因为没有意义 如果有些功能需要从 master 到分支,会采取类似 cherry pick 的方式,但分支还是保持各自独立 不好说对错,以前 vss/svn 很多公司都是这么玩的 现在 git 怎么弄合适还真不清楚,不在这种类型的行业做了 |
10
lasuar 17 天前
你自己都察觉不合理了,还问。
|
11
aa514758835 OP @lasuar 多问不好吗?
|
12
jim9606 17 天前 via Android
最好别这么用。
可以每个分支都有全套源码+专属配置,也可以单分支源码仓库+多分支配置仓库。 我能想到强行用同一个仓库的理由是你想白嫖一个按仓库数限额的 VCS 托管平台。 |
13
aa514758835 OP @jim9606 了解~~
|
15
IvanLi127 17 天前
这... 如果有用 git submodule 来处理的话,应该有吧...这似乎前提是放在单独的目录里。
反正我不会这么用,好麻烦 |
16
weeei 17 天前
这种情况适合使用 fork ,这样就需要多个仓库。你现在这种做法只不过是不想 fork 而采用的简单方案。没啥问题。
|
17
xiaogu2014 17 天前
@snake2004 项目见的权限控制可以放在不同的 repo 里面。
以及放在不同分支里就可以实现项目间的权限控制了吗。。。。 |
18
snake2004 16 天前
@xiaogu2014 服务端可用 hook 实现
|
19
location123 16 天前
repo ?
|
20
simen513 16 天前
配置通过代码生成,传不同参数就生成不同的配置,这样就可以都放在一个 repo 中。
|
21
needhourger 16 天前
其实算好的,认识一位非科班出生的大佬用分支来发版,比如版本 v1.0.0 就从 main 分支切出来一个 branch 叫 v1.0.0
,于是打开 ta 的项目可以看到一吨的分支. |
22
sillydaddy 15 天前
是不是源码一个仓库,配置文件是另一个仓库,然后这两个仓库之间还没有 submodule 的关系?
|
23
aa514758835 OP @sillydaddy 我没用过子模块,这个是一个项目一个配置文件子分支,然后源码主分支
|