如何在 git 中维护生产和开发分支?

时间:2021-06-09 05:15:48

标签: git github version-control development-environment production

在我的项目中,我有这个 constants.ts 文件,用于存储我的 API_URL。我想在我的生产(主)和开发分支中保留两个 API_URL。

例如:开发 -> API_URL = 'http://localhost:4000' main -> APIURL = 'https://backend.com'

但是当我更改 API_URL 并提交合并主分支和开发分支时,它会检测到更改。所以如果我在主分支中合并它的常量文件也会发生变化。如何忽略这个文件的变化?

1 个答案:

答案 0 :(得分:2)

<块引用>

在我的项目中,我有这个 constants.ts 文件,用于存储我的 API_URL

这个想法是存储两个文件:

  • constants.ts.main
  • constants.ts.dev

(我使用 main instead of master here

  • 从现在开始忽略 constants.tsecho constants.ts>>.gitignore

这意味着在本地生成正确的 constants.ts 文件:将 dev 合并到 main 时不涉及复杂的合并。

在每个分支中,您将根据当前的执行环境生成 constants.ts,其中包含正确的内容。

生成脚本将确定签出分支的名称:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

最后,您将(在 .gitattributes declaration 中)注册一个 content filter driver

smudge (图片来自“Customizing Git - Git Attributes”,来自“Pro Git book”)

smudge 文件相关联的 constants.ts 脚本将通过在正确的 git checkout 值文件。
生成的实际 git switch 文件仍然被忽略(被 constants.ts 忽略)。

请参阅“git smudge/clean filter between branches”中的完整示例。