我在我的项目中使用GitLab,我有一个非常具体的工作流程。我有两个分支“开发”和“发布”,如下所示。当我从Dev向Release提交合并请求时,配置文件也会被Dev分支覆盖。
但理想情况下,这两个分支的配置文件必须不同。我尝试使用merge=ours
。但它没有达到我的目的,因为除非配置文件中存在冲突,否则它不会覆盖。我不想在.gitignore
中添加这些文件,因为这些文件的任何更改都不会在 Dev 分支中提交。有人可以指导我如何实现这个目标吗?
答案 0 :(得分:1)
您可以简单地确保dev和master的配置文件具有不同的命名,并具有自己的历史记录。这样,合并永远不会覆盖任何东西。
然后您可以进行版本和跟踪:
config
(带占位符值的模板文件)。 .gitignore
文件(保留未跟踪,私有)config
忽略生成的.gitattribute
文件git checkout
声明污迹内容过滤器(见下文)使用content filter driver通过 .gitattributes
declaration 自动生成配置文件。
(来自"Customizing Git - Git Attributes"的图片来自“Pro Git book”))
在您的本地配置中声明该内容文件管理器驱动程序后,它会自动在config
为您生成context.getBeanDefinitionNames()
文件。
请参阅“Best practice - Git + Build automation - Keeping configs separate”中的完整示例。