在我的项目中,我有这个 constants.ts
文件,用于存储我的 API_URL
。我想在我的生产(主)和开发分支中保留两个 API_URL。
例如:开发 -> API_URL = 'http://localhost:4000' main -> APIURL = 'https://backend.com'
但是当我更改 API_URL 并提交合并主分支和开发分支时,它会检测到更改。所以如果我在主分支中合并它的常量文件也会发生变化。如何忽略这个文件的变化?
答案 0 :(得分:2)
在我的项目中,我有这个 constants.ts
文件,用于存储我的 API_URL
。
这个想法是存储两个文件:
constants.ts.main
constants.ts.dev
(我使用 main
instead of master
here)
constants.ts
:echo constants.ts>>.gitignore
。这意味着在本地生成正确的 constants.ts
文件:将 dev
合并到 main
时不涉及复杂的合并。
在每个分支中,您将根据当前的执行环境生成 constants.ts
,其中包含正确的内容。
生成脚本将确定签出分支的名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
最后,您将(在 .gitattributes
declaration 中)注册一个 content filter driver。
(图片来自“Customizing Git - Git Attributes”,来自“Pro Git book”)
与 smudge
文件相关联的 constants.ts
脚本将通过在正确的 git checkout
值文件。
生成的实际 git switch
文件仍然被忽略(被 constants.ts
忽略)。
请参阅“git smudge/clean filter between branches”中的完整示例。