我的项目中有两个分支:掌握和发展。 它们都有一个配置文件,其中包含我的主要端点和所有其他API端点。 我该如何保护母线,防止其主端点因开发的合并请求而被更改?
答案 0 :(得分:1)
Git既不是配置管理器也不是发行管理器。它可以被迫担任这些角色,但做得不好。您可以通过多种方法将某些东西拼凑在一起,但是它们都很脆弱,使合并过程变得复杂,而合并过程已经足够复杂了。
您可以删除不想合并的行,提交,合并,然后放回去。必须为每次合并正确完成此操作。
您可以进行git merge -n
并仔细调整合并以忽略某些行。同样,每次合并都必须完成此操作。
也许最好的选择是编写一个pre-merge-commit hook来调整提交,但是现在这要求脚本能够正确运行,并且每个在项目上工作的人都有这些客户端钩子,并且它们保持最新状态。
不可避免地,有人会把它搞砸。
相反,最好使用支持多个环境的配置系统。这可能是发布过程的步骤,例如“开发”,“测试”,“分段”和“生产”。这也可以是针对不同客户端的自定义。
您可以将其作为单个文件来完成,例如config/database.yml in Rails。或针对每个环境(如config/environments/ in Rails)使用一个文件。或作为The Twelve Factor App提倡的环境变量。或任何组合。只要是您的应用程序在做,就不用Git。
与使合并过程复杂化不同,改进的配置管理将产生影响,以改善项目的其余部分。