git - 如何在 git 中维护生产和开发分支?
问题描述
在我的项目中,我有这个constants.ts
文件存储我的API_URL
. 我想在我的生产(主要)和开发分支中保留两个 API_URL。
例如:开发 -> API_URL = 'http://localhost:4000' main -> APIURL = 'https://backend.com'
但是当我更改 API_URL 并提交合并主分支和开发分支时,它检测为更改。所以如果我在主分支中合并它的常量文件也会发生变化。如何忽略此文件的更改?
解决方案
在我的项目中,我有这个
constants.ts
文件来存储我的API_URL
.
这个想法是存储两个文件:
constants.ts.main
constants.ts.dev
(我用这里main
代替master
)
constants.ts
从现在开始保持忽略:echo constants.ts>>.gitignore
。
这意味着在constants.ts
本地生成正确的文件:合并dev
到main
.
然后,在每个分支中,您将根据当前的执行环境,从其中一个文件中生成包含正确内容的 . constants.ts
生成脚本将确定签出分支的名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
最后,您将(在.gitattributes
声明中)注册一个内容过滤器驱动程序。
(图片来自“ Customizing Git - Git Attributes ”,来自“ Pro Git book ”)
与文件关联的smudge
脚本将通过在正确的值文件中查找值constants.ts
来生成(自动、在git checkout
或git switch
)实际文件。
生成的实际文件仍然被忽略(由)。constants.ts
constants.ts.<branch>
constants.ts
.gitignore
请参阅“分支之间的 git smudge/clean filter ”中的完整示例。
推荐阅读
- javascript - 为什么我在全局定义这个变量时没有定义它?(javascript, p5.js)
- python - 使用 psycopg2 将数据从 python 上传到 postgresql 时将“nan”替换为空白
- bash - 为什么 echo 命令会返回这种结果?
- java - 如何使用简单的 java 命令运行 Maven 项目
- json - Kotlin Json 解析
- excel - 如何在Excel中引用完整的列,其中有一个值
- c - fopen 在 main 中有效,但在另一个文件中的函数中无效
- haskell - 显示自定义复杂数据类
- javascript - 将 object-props 传递给新对象的构造函数
- reactjs - 反应 axios NTLM 身份验证