如何在 git 提交前将生产版本和开发版本的配置进行区分

23 小时 49 分钟前
 timerring
最近遇到了一个困扰我的问题,我在开发项目时,不想将我的项目中一些隐私的配置提交到 github 上,于是我 gitignore 了这些文件,然后为了其他人 clone 下来能直接用,我又添加了对应的 example 配置文件。
配置命名分别是:
我 gitignore 的 config.toml
项目展示的 config-example.toml
源码中有对 toml 的很多引用,导致我每次开发完 push 到 github 的时候都要把我源码中的 config 改为 example 。非常麻烦,想问问大家有没有什么好的解决方法或者插件什么的,能够让我 push 的时候丝滑切换。
433 次点击
所在节点    git
7 条回复
newaccount
23 小时 44 分钟前
读取环境变量
GeruzoniAnsasu
23 小时 39 分钟前
> 为了其他人 clone 下来能直接用,我又添加了对应的 example 配置文件

本来项目也不应该其它人 clone 完就能直接用,应该是 clone 完,自动 build 一下能直接用,要么就下载 release 后能直接用

增加个 build 环节就好了
Vegetable
23 小时 37 分钟前
完全没看懂,你 push 的时候改的是什么?
lambdaq
23 小时 37 分钟前
conf/prod.toml
conf/beta.toml
conf/local.toml
conf/ci.toml

启动的时候必须指定(命令参数、环境变量等)

如果没指定你提示个启动失败,教一下怎么指定。
InDom
23 小时 32 分钟前
通过 .env 配置, 此文件不提交到 git, 你提供的应该是 example.env,

项目通过 env('DB_HOST', 'mysql'), 实现.
InDom
23 小时 30 分钟前
其他人 clone 项目后,应该将 example.env 改为 .env ,并适当配置后使用.

希望没有 .env 就能使用, 那就是放在 env() 的默认值里面.

如果你非要用 .env , 还非得自己额外覆盖, 那就加一个 env = merge('.env', 'local.env')
Akkuman
1 小时 4 分钟前
配置支持从环境变量读取,然后是配置文件,如果有配置中心可以也可以用配置中心,然后用 direnv 或者 mise 这类工具自动应用环境变量文件,gitignore 中忽略掉环境变量配置文件

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

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

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

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

© 2021 V2EX