Git:同一个文件,在不同的分支上有所不同

Git:同一个文件,在不同的分支上有所不同,git,github,gitlab,Git,Github,Gitlab,对于在四个URL prod.app.com、edge.app.com、test.app.com、devl.app.com上运行的应用程序,我们有master、edge、test、devl分支 我们的工作流程是devl->test->edge->master 目前,我们面临一个问题,即所有分支上的某些配置都会发生更改。我们在4个分支上有一些不同的文件,例如站点URL、数据库设置等。因此,我们如何通过git轻松管理这些文件。我们不能将其添加到Git ignore中,因为我们不能频繁地访问web服务器

对于在四个URL prod.app.com、edge.app.com、test.app.com、devl.app.com上运行的应用程序,我们有master、edge、test、devl分支

我们的工作流程是devl->test->edge->master

目前,我们面临一个问题,即所有分支上的某些配置都会发生更改。我们在4个分支上有一些不同的文件,例如站点URL、数据库设置等。因此,我们如何通过git轻松管理这些文件。我们不能将其添加到Git ignore中,因为我们不能频繁地访问web服务器以直接在web服务器中进行更改

此外,我们有大约14个配置文件(适用于14种不同的网络语言),而且这些配置文件有频繁的代码更改,因此我们不能忽略这些文件。此外,我们无法按此中的指定合并文件,因为存在更改,我们需要将这些更改推送到服务器


因此,当前当我们需要更改edge的配置时,我们正在更改devl的配置,然后将分支推送到测试,然后推送到edge。因此,在此过程中,我们的开发和测试将停止,因此请告诉我们可以实现的最佳方法。

使用
git cherry pick
可以将相同的补丁应用于所有分支

如果您的devel分支都是master分支的子级,那么您也可以仅将更改应用于master,然后将其他更改应用于更新的master


但就个人而言,我不会将配置与其他来源放在一起。将它们添加到.gitignore。您仍然可以创建另一个仅包含配置文件的项目。

可能重复@rudemeier我不知道这是一个愚蠢的问题,但出于好奇。。是否可以仅使用配置文件创建另一个分支,并且在web服务器中我们可以配置为在两个分支中显示文件?创建一个没有父级的分支
git checkout--orphan config
,并提交这样的配置文件。然后切换到master
git checkout master
并仅获取配置文件
git checkout config--filename
BTW您还可以查看
git子模块