我有一个项目(网络),它与服务层进行了大量的交互。客户端具有不同的临时服务器,用于部署项目和服务层,如下所示:
我在网站上使用的WSDL与服务层交互,从一组服务器更改为另一组服务器。
如何使用带有三个分支(master,dev,qa)的git工作流在不同的分支中保留不同版本的WSDL?
答案 0 :(得分:2)
正如您在评论中解释的那样,分支将被合并,并且WSDL文件将发生冲突。当发生这种情况时,您必须通过保留正确版本的WSDL文件来解决冲突。
例如,如果您在qa
上,从dev
合并,并且WSDL文件存在冲突,您可以使用以下方法解决它:
git checkout HEAD file.wsdl
这将恢复合并之前的WSDL文件,并且您可以提交合并。
但是,如果WSDL文件中有更改但没有冲突,则git merge
将自动合并它们。如果这不是你想要的,并且你真的想保留文件而不合并,那么你可以像这样合并:
git merge dev --no-commit --no-ff
git checkout HEAD file.wsdl
git commit
<强>更新强>
为了使这更容易,请参阅另一个问题的第一个答案: Git: ignore some files during a merge (keep some files restricted to one branch)
它提供3种不同的解决方案,请务必考虑所有这些解决方案。
答案 1 :(得分:1)
我认为分支是错误的工具。分支对于(或多或少)独立开发非常有用,需要并行和孤立地进行。您的多个部署环境的用例似乎不适合该模型。如果你需要多个分支,它也不能很好地扩展。发布并始终必须创建和维护特定于部署的子分支。
定义多个配置(用于部署或构建,取决于使用WSDL文件的内容)的单个分支可能会更好地服务。
这假设WSDL文件是分支之间唯一的不同,这是我从问题中得到的印象。