GitLab - 忽略目标分支中的特定文件
GitLab - ignore specific files in target branch
我在我的项目中使用 GitLab,我有一个非常具体的工作流程。我有 2 个分支“Dev”和“Release”,如下所示。当我从 Dev 向 Release 提交合并请求时,配置文件也被 Dev 分支的配置文件覆盖。
但理想情况下,这两个分支的配置文件必须不同。我尝试使用 merge=ours
。但它没有达到我的目的,因为它不会覆盖,除非配置文件中存在冲突。我不想在 .gitignore
中添加这些文件,因为对这些文件的任何更改都不会在 Dev 分支中提交。有人可以指导我如何实现吗?
您只需确保 dev 和 master 的配置文件以不同的方式命名,并具有各自的历史记录。这样,合并将永远不会覆盖任何内容。
然后您可以进行版本和跟踪:
- a
config.tpl
(带有占位符值的模板文件)。
- 两个配置文件,一个给dev,一个给master
- 一个脚本能够获取配置文件和模板文件,并生成
config
文件(保持未跟踪,私有)
- a
.gitignore
忽略生成的 config
文件
- a
.gitattribute
声明污迹内容过滤器(见下文)
配置文件的生成是通过 content filter driver, using a .gitattributes
declaration 自动生成的。
(图片来自"Customizing Git - Git Attributes" from "Pro Git book"))
一旦您在本地配置中声明了该内容文件管理器驱动程序,它将在 git checkout
上自动为您生成 config
文件。
请参阅“Best practice - Git + Build automation - Keeping configs separate”中的完整示例。
我在我的项目中使用 GitLab,我有一个非常具体的工作流程。我有 2 个分支“Dev”和“Release”,如下所示。当我从 Dev 向 Release 提交合并请求时,配置文件也被 Dev 分支的配置文件覆盖。
但理想情况下,这两个分支的配置文件必须不同。我尝试使用 merge=ours
。但它没有达到我的目的,因为它不会覆盖,除非配置文件中存在冲突。我不想在 .gitignore
中添加这些文件,因为对这些文件的任何更改都不会在 Dev 分支中提交。有人可以指导我如何实现吗?
您只需确保 dev 和 master 的配置文件以不同的方式命名,并具有各自的历史记录。这样,合并将永远不会覆盖任何内容。
然后您可以进行版本和跟踪:
- a
config.tpl
(带有占位符值的模板文件)。 - 两个配置文件,一个给dev,一个给master
- 一个脚本能够获取配置文件和模板文件,并生成
config
文件(保持未跟踪,私有) - a
.gitignore
忽略生成的config
文件 - a
.gitattribute
声明污迹内容过滤器(见下文)
配置文件的生成是通过 content filter driver, using a .gitattributes
declaration 自动生成的。
(图片来自"Customizing Git - Git Attributes" from "Pro Git book"))
一旦您在本地配置中声明了该内容文件管理器驱动程序,它将在 git checkout
上自动为您生成 config
文件。
请参阅“Best practice - Git + Build automation - Keeping configs separate”中的完整示例。